2012-05-13 58 views
6

Tôi đang mã hóa mã nhập danh bạ Google cho mạng xã hội mà lần nhập này xảy ra trên trang người dùng mà url sẽ thay đổi từ người dùng sang người dùng, ví dụ: profile/user1, profile/user2URL chuyển hướng API động của Google

Tuy nhiên với google tôi dường như chỉ có thể đặt một url chuyển hướng và dường như không tìm thấy bất kỳ đề cập nào về google cho phép ký tự đại diện khớp với tên miền thay vì url cụ thể.

Có cách nào để thực hiện việc này hay không và tôi có phải chỉ để nó được đặt thành một url không?

Xin cảm ơn trước.

Trả lời

12

Tôi có mã PHP để đạt được nó. Thật sai khi nói rằng nó không thể được thực hiện. Tôi đã sử dụng kỹ thuật này cho Analytics, Adwords, Google+ và YouTube. Nó hoạt động với tất cả các dịch vụ được đề cập.

Bí quyết là sử dụng thông số "trạng thái" để được sử dụng làm URL động. Tôi hy vọng nó sẽ giúp mọi người.

// Auth URL 
// $campaign_id will be different for everyone 
$dynamic_redirect = 'http://' . $_SERVER['HTTP_HOST'] . "/analytics/$campaign_id"; 
$client_id = 'XXXXXXXX'; 
$redirect_uri = 'API_REDIRECT_URI'; // Fixed URL, it will not be changed 

$auth_url = "https://accounts.google.com/AccountChooser?service=lso&continue="; 
$auth_url .= urlencode("https://accounts.google.com/o/oauth2/auth?response_type=code&scope=https://www.googleapis.com/auth/analytics.readonly&access_type=offline&redirect_uri=$redirect_uri&approval_prompt=force&state=$dynamic_redirect&client_id=$client_id"); 


/*************************************/ 
API_REDIRECT_URI PAGE 
/*************************************/ 
$redirect_url = $_GET['state']; 
+0

Hiya, Ok, đã lâu rồi, nhưng đã chuyển sang máy của bạn. –

6

Tôi thấy rằng điều này là không thể, vì vậy nếu có ai đó đang tìm kiếm điều này, không có cách nào. Tôi đã kết thúc việc khắc phục sự cố của mình bằng cách chỉ cho phép google chuyển hướng đến một url cố định để không phải là url động.

+1

Bạn chuyển phần động làm thông số "trạng thái" như @ fraz-ahmed được đề cập. URL chuyển hướng sẽ bao gồm giá trị trạng thái này làm thông số truy vấn. Bạn có thể mã hóa bất cứ điều gì bạn cần vào tiểu bang. – philidem

1

Bạn có thể làm một việc đơn giản. Đặt "url trang của người dùng" trong phiên khi tạo URL xác thực. Trên trang Callback của bạn nhận được "url trang người dùng" từ phiên và người dùng chuyển hướng đơn giản đến trang đó.

Tôi đã có thể đạt được thành công ở trên bằng cách sử dụng PHP.

+0

bạn sẽ chia sẻ một số mã ví dụ về cách bạn gửi URL của trang người dùng và nhận nó trong thư trả lời. Có lẽ trong pastebin, cảm ơn bạn – Anagio

+0

@anagio kiểm tra câu trả lời mới của tôi cho mã: [link] (http://stackoverflow.com/questions/10569795/dynamic-google-api-redirect-url/19382579#19382579) –

+0

Bằng cách trong câu trả lời mới của tôi, chúng tôi thậm chí không cần bất kỳ PHIÊN nào. Đó là tất cả năng động. –

0

Có thể, như tôi biết về một ứng dụng thực hiện điều này. Tôi thấy bài này về cách để làm điều đó - đã không thử nó, nhưng nó có giá trị một shot: http://www.ioncannon.net/programming/1443/google-oauth-for-installed-apps-php-example/

+0

Lưu ý rằng các câu trả lời chỉ dành cho liên kết được khuyến khích (các liên kết có xu hướng bị hạn chế theo thời gian). Vui lòng xem xét chỉnh sửa câu trả lời của bạn và thêm bản tóm tắt tại đây. – kleopatra

Các vấn đề liên quan