我是新来的,我提前感谢所有帮助我的人。
我使用Youtube API在一些视频中收集评论。这对我来说非常重要,因为我有一个用PHP开发的系统,用于收集社交媒体的公共内容。我有一个应用程序在谷歌api,我可以验证我的系统上的帐户使用OAUTH。
然而,这个令牌在几分钟后过期。API中有一个叫刷新令牌的东西,它在第一次身份验证后返回。它必须准确地用于刷新我的令牌并保持我访问API。几天前,这个资源停止工作了。我不能再刷新我的令牌了,我不明白他们返回给我的JSON中的错误。
我尝试使用cUrl更新令牌:
public function renewToken() {
$url = 'https://accounts.google.com/o/oauth2/token';
$params = array(
'body' => array(
'client_id' => self::CLIENT_ID,
'client_secret' => self::CLIENT_SECRET,
'refresh_token' => $this->refresh_token,
'grant_type' => 'refresh_token',
),
);
$return = $this->curl->post($url, $params);
if($this->curl->http_code==200)
....
直到一两个星期前它还在工作。然后就停了,我也不知道为什么。API返回的唯一错误消息是:
{
"error" : "invalid_request"
}
我在Google api控制台创建了一个新的应用程序,获得了客户端ID和密钥,在我的代码中更改了它们,结果是相同的。我对正在发生的事情只有一点点线索。是发生在某人身上吗
Google Developers上的OAuth2.0文档最后一次更改是在2天前(截至今天,2016年10月8日),即10月6日(见页面底部)。我只能假设他们最近对工作流程做了一些改变,这就解释了为什么你的应用程序突然停止工作。
例如,我注意到用于更新令牌的文档URL不是您使用的https://accounts.google.com/o/oauth2/token
,而是https://www.googleapis.com/oauth2/v4/token
(请参阅"使用刷新令牌"一节)。