是否有人找到了使用微博api刷新令牌的方法?
我在我的网站上实现了身份验证以获取用户令牌,但是在API返回的JSON中,没有“refresh_token”字段。 如果遗漏这些信息,我无法刷新应用用户的令牌。
一旦用户通过身份验证,我需要自动刷新此令牌,因为我在CRON作业中使用它来获取已注册用户的订阅源并将其保存在数据库中。
我使用微博文档https://github.com/xiaosier/libweibo
中提供的facebook sdk我的身份验证代码如下:
$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