有没有人找到用微博 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