开启了OAuth2.0的Discuz站点不能同步到微博的问题排查
今天排查了一例Discuz站点不能同步到微博的问题,问题表现如下:
- 发帖勾选同步到微博,同步失败
- 在详情页点击分享到微博,同步成功
分享到微博使用的是一套接口,怎么会出现这种情况呢?
发帖自动同步代码:
$response = $connectOAuthClient->$method($_G['member']['conopenid'], $_G['member']['conuin'], $_G['member']['conuinsecret'], $t_params);
点击分享,同步到微博代码:
if(!$_G['setting']['connect']['oauth2'] || !$_G['member']['conuintoken']) {
try {
$response = $connectOAuthClient->$method($_G['member']['conopenid'], $_G['member']['conuin'], $_G['member']['conuinsecret'], $t_params);
} catch(Exception $e) {
$errorCode = $e->getCode();
}
} else {
try {
$method = $method.'_V2';
$response = $connectOAuthClient->$method($_G['member']['conopenid'], $_G['member']['conuintoken'], $t_params);
} catch(Exception $e) {
$errorCode = $e->getCode();
}
}
一目了然了吧,发帖自动同步的代码没有做OAuth2.0的兼容,使用的还是OAuth1.0的分享接口,但是会失败了。
把上面的代码替换成下面的,同步成功。
回帖自动同步的问题同理。