在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。当它过期但我的电话开始失败时:
"错误" :" invalid_request"," error_description" :"客户必须 指定client_id或client_assertion,而不是"
我尝试了setRefreshToken
和其他所有组合,仍然无法让它发挥作用。
我究竟做错了什么?我确实尝试将状态设置为脱机,但不确定它是否重要,因为我将刷新令牌作为初始令牌的一部分。
答案 0 :(得分:2)
global $google_config;
!结果,client_id和secret_id都丢失了 - 虽然错误信息至少可以说是错误的!