0

有没有人找到用微博 api 刷新令牌的方法?

我在我的网站上实现了身份验证以获取用户令牌,但是在 API 返回的 JSON 中,没有“refresh_token”字段。缺少此信息,我无法刷新我的应用用户的令牌。

一旦用户经过身份验证,我需要自动刷新此令牌,因为我在 CRON 作业中使用它来获取注册用户的提要并将其保存在数据库中。

我使用微博文档中提供的facebook sdk https://github.com/xiaosier/libweibo

我的身份验证代码如下所示:

    $o = new SaeTOAuthV2( WEIBO_APP_API_APP_KEY , WEIBO_APP_API_SECRET );
    $code_url = $o->getAuthorizeURL( WEIBO_APP_CALLBACK_URL );
    $error_message = '';
    if (isset($_GET['code']) && empty($val)) {
      $keys = array();
      $keys['code'] = $_GET['code'];
      $keys['redirect_uri'] = WEIBO_APP_CALLBACK_URL;
      try {
              $token = $o->getAccessToken( 'code', $keys );
              //$token['refresh_token_at'] = strtotime('+2 week');
      } catch (OAuthException $e) {
              $error_message = pll__('There was a problem during connection process. Please try again or contact the website administrator');
      }
    }

API 返回的 json :

{
    "access_token": "2.00pxxxxxxxxxxxxxxxxxxxxxxx",
    "remind_in": "157679999",
    "expires_in": 157679999,
    "uid": "65xxxxxxx",
    "isRealName": "true"
}

我错过了 API 文档中的某些内容吗?或者这是 Oauth 模式的特定实现,您必须通过另一种方式获取刷新令牌?我在文档中进行了很多搜索,但找不到任何线索。

有一些令人不安的事情,remind_in 和 expires_in 的时间戳在转换为人类可读日期时给出以下日期:1974-12-30 23:59:59

4

0 回答 0