我正在为社交网络编写谷歌联系人导入代码,此导入发生在用户页面上,其 url 因用户而异,例如 profile/user1、profile/user2
但是,使用 google,我似乎只能设置一个重定向 url,并且似乎找不到任何提及 google 允许通配符匹配域而不是特定 url。
有没有办法做到这一点,还是我必须将其设置为一个 url?
提前致谢。
我正在为社交网络编写谷歌联系人导入代码,此导入发生在用户页面上,其 url 因用户而异,例如 profile/user1、profile/user2
但是,使用 google,我似乎只能设置一个重定向 url,并且似乎找不到任何提及 google 允许通配符匹配域而不是特定 url。
有没有办法做到这一点,还是我必须将其设置为一个 url?
提前致谢。
我有实现它的 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'];
我发现这是不可能的,所以如果有人在寻找这个,那就没有办法了。我最终通过让谷歌重定向到固定网址而不是动态网址来解决我的问题。
你可以做一件简单的事情。创建 Auth URL 时将“用户页面 url”放入会话中。在您的回调页面上,从会话中获取“用户页面 url”并将用户简单地重定向到该页面。
我能够使用 PHP 成功实现上述目标。
这是可能的,因为我知道有一个应用程序可以做到这一点。我发现这篇关于如何做的帖子 - 还没有尝试过,但值得一试:http: //www.ioncannon.net/programming/1443/google-oauth-for-installed-apps-php-example /
我们可以在 Google API 设置中指定多个重定向 URI,每行一个
Google API 控制台 -> 选择您的 API -> API 访问权限 -> 编辑设置 -> 在授权重定向 URI 下
进入..