OAuth.io服务器端不刷新Google令牌

时间:2016-05-19 10:45:24

标签: php google-api oauth.io

首先请不要将其标记为重复,因为这与服务器端(PHP)有关,而不是与客户端相关的其他帖子。

我尝试通过Oauth.io刷新Google API令牌。我跟着this和其他许多帖子,但没有运气。不幸的是,Oauth.io文档不是最好的。我不会在Twitter和Facebook上遇到这个问题只有谷歌。

我第一次连接时得到了refresh_token。然后我需要每天进行一次API调用。

array(4) {
  'status' =>
      string(5) "error"
  'code' =>
      int(401)
  'message' =>
      string(70) "Bearer token invalid. Follow the oauth2-token link to get a valid one!"
  'data' =>
      array(1) {
          'code' =>
              string(17) "UnauthorizedError"
      }
}

问题是如何通过Oauth.io刷新Google令牌?

documentation说:

  

//如果需要,auth方法会自动刷新令牌       $ request_object = $ oauth-> auth(' facebook',array(         '凭证' => $凭据       ));

和点here,但它并没有解决问题。它所做的只是我在响应中获得了refresh_token值。

更新

根据this帖子,我试图这样做:

cd $JENKINS_HOME
git add --all
git commit -m "Automated backup commit: $BUILD_TIMESTAMP"
git push

但我得到的只是

{{1}}

仍然没有。

1 个答案:

答案 0 :(得分:0)

最后我发现了它。您可以使用以下命令刷新access_token:

    $this->oauth = new OAuth();
    $this->oauth->initialize($publicKey, $secretKey);
  1. $ refreshedCredentials = $ this-> oauth-> refreshCredentials($ oldCredentials,true);
    1. $request_object = $oauth->auth('google_analytics', array( 'credentials' => $credentials, 'force_refresh' => true ));
    2. 可以找到两个答案here。我整天都没有看到它。

      我更喜欢使用第一个解决方案,因为我想保存新的access_token,以便我以后可以重复使用它。而且你需要记住你需要传递refresh_token,你使用第一个access_token,以及最后一个access_token来刷新access_token - 在用户撤销访问权限之前,refresh_token不会改变。