动态 Google API 重定向网址

Posted

技术标签:

【中文标题】动态 Google API 重定向网址【英文标题】:Dynamic Google API redirect URL 【发布时间】:2012-05-21 03:19:22 【问题描述】:

我正在为社交网络编写 google 联系人导入代码,此导入发生在用户页面上,其 url 因用户而异,例如个人资料/用户1,个人资料/用户2

但是使用 google,我似乎只能设置一个重定向 url,并且似乎找不到任何提及 google 允许通配符匹配域而不是特定 url。

有没有办法做到这一点,还是我必须将其设置为一个 url?

提前致谢。

【问题讨论】:

如果有人来这里登录并使用 cognito,当调用 federatedSignIn 时,您可以传递一个名为 customState 的属性,然后您可以让一些代码在 Hub.listen 上监听事件customOAuthState,一旦用户登录,您就可以访问自定义状态 【参考方案1】:

我有实现它的 php 代码。说不能做是错误的。我将这种技术用于分析、Adwords、Google+ 和 YouTube。它适用于所有提到的服务。

诀窍是使用“状态”参数作为动态 URL。希望对大家有所帮助。

// 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'];

【讨论】:

嗨,好的,很久以前的了,不过换成你的了。 一颗宝石,非常感谢。干杯..【参考方案2】:

我发现这是不可能的,所以如果有人在寻找这个,那就没有办法了。我最终通过让谷歌重定向到固定网址而不是动态网址来解决我的问题。

【讨论】:

您将动态部分作为@fraz-ahmed 提到的“状态”参数传递。重定向 URL 将包含此状态值作为查询参数。您可以将所需的任何内容编码到状态中。【参考方案3】:

你可以做一件简单的事情。创建 Auth URL 时将“用户页面 url”放入会话中。在您的回调页面上,从会话中获取“用户页面 url”并将用户简单地重定向到该页面。

我能够使用 PHP 成功实现上述目标。

【讨论】:

您能否分享一些有关如何发送用户页面 URL 的示例代码,并在响应中接收它。也许在 pastebin 中,谢谢 @anagio 检查我对代码的新答案:link 顺便说一句,在我的新答案中,我们甚至不需要任何会话。这一切都是动态的。【参考方案4】:

这是可能的,因为我知道有一个应用程序可以做到这一点。我发现这篇关于如何做的帖子 - 还没有尝试过,但值得一试: http://www.ioncannon.net/programming/1443/google-oauth-for-installed-apps-php-example/

【讨论】:

请注意,不鼓励仅提供链接的答案(链接会随着时间的推移而变得陈旧)。请考虑在此处编辑您的答案并添加概要。【参考方案5】:

我们可以在 Google API 设置中指定多个重定向 URI,每行一个

Google API 控制台 -> 选择您的 API -> API 访问权限 -> 编辑设置 -> 在授权重定向 URI 下

输入..

http://one.example.com/contactimporter.php

http://two.example.com/contactimporter.php

【讨论】:

不是一个好方法,我不想每次向我的网站添加新页面(潜在的重定向页面)时都更改 google api 设置。

以上是关于动态 Google API 重定向网址的主要内容,如果未能解决你的问题,请参考以下文章

Google Oauth重定向到ios自定义网址

对动态短网址使用 301/303/307 重定向

实施 HTTP 到 HTTPS 重定向,保留 Google Analytics(分析)引荐来源网址

Google Maps API - 意外重定向

Google OAuth Api 未在登录时重定向

Google API:了解重定向 URI