【发布时间】:2014-09-21 11:12:26
【问题描述】:
我正在使用在Google PHP API library 找到的最新版本
在 iOS 上启动身份验证->获取代码->发送到服务器->获取令牌一切正常。但是我将用户的令牌本地存储在服务器上,以代表 iOS 客户端离线访问。
注意:$googleToken 也包含刷新令牌。
$client = new Google_Client();
$oauth2 = new Google_Service_Oauth2($client);
$client->setApplicationName('MyServer');
$client->setClientId($google_config["clientId"]);
$client->setClientSecret($google_config["clientSecret"]);
$client->setRedirectUri("");
$client->setDeveloperKey($google_config["developerKey"]);
$googleToken = getGoogleToken($user); //locally stored google token for user
$client->setAccessToken($googleToken['token']);
$access_token = $client->getAccessToken();
StoreToken($access_token);
并再次存储 access_token。当它到期时,尽管我的呼叫开始失败:
"error" : "invalid_request", "error_description" : "客户必须 指定 client_id 或 client_assertion,而不是两者"
我已经尝试过setRefreshToken 和其他所有组合,但仍然无法正常工作。
我究竟做错了什么?我确实尝试将状态设置为离线,但不确定它是否重要,因为我将刷新令牌作为初始令牌的一部分。
【问题讨论】:
标签: php oauth-2.0 google-oauth google-api-php-client