GooglePlus API-(401)无效的凭据错误



我们的代码可以完美地访问GooglePlus API,但是现在它莫名其妙地不再起作用,而是返回A(401)无效的凭据"此行被称为:

$me = $plus->people->get('me');

这是完整的代码段(PHP):

try
{
    $client = new apiClient();
    $client->setApplicationName("Google OAuth");
    $client->setClientId(GOOGLE_API_CLIENT_ID);
    $client->setClientSecret(GOOGLE_API_CLIENT_SECRET);
    $client->setRedirectUri(GOOGLE_API_REDIRECT_URI);
    $client->setDeveloperKey('XXX');
    $client->setScopes(array('https://www.googleapis.com/auth/plus.me'));
    $plus = new apiPlusService($client);
    $oauth2 = new apiOauth2Service($client);
    $client->authenticate();
    $token = $client->getAccessToken();
    if (isset($token))
        $client->setAccessToken($token);
    if ($client->getAccessToken()) {
         $me = $plus->people->get('me');
    }
}
catch (Exception $x)
{
    echo "Stack: " . $x->getTraceAsString() . "<br />";
    echo "Message: " . $x->getMessage() . "<br />";
    echo "File: " . $x->getFile() . "<br />";
    echo "Line: " . $x->getLine(). "<br />";
}

i当用户拒绝访问对我的aplication时遇到相同的错误,而令牌保留在db(或session)中。 API试图使用旧令牌进行身份验证。您需要检查

if(strpos($x->getMessage(), 'Invalid Credentials')) {
   unset($_SESSION['access_token'];
}

,还从您的DB中删除所有相关数据。

什么失败?第一个授权的呼吁,还是第二个呼吁获得令牌?

检查已发送的URL,检查问题会更容易。和:Google可能已经更改了他们的OAuth API?

据我所知,一切都在检查,与您的帐户相关的凭据可能出现问题。

要验证这一点,请尝试使用另一个帐户访问API或尝试从Google帐户撤销您的应用程序。从您的帐户撤销您的申请:

  1. 导航到此页面:https://www.google.com/settings/account
  2. 单击安全链接,然后单击页面底部的管理访问按钮。
  3. 找到与您的网站相对应的应用程序,然后单击

撤销了您的网站/应用程序后,返回您的网站,然后重新认证。

当您使用相同凭据从其他设备登录并注销时引起此问题。

最新更新