开启了OAuth2.0的Discuz站点不能同步到微博的问题排查

今天排查了一例Discuz站点不能同步到微博的问题,问题表现如下:

  1. 发帖勾选同步到微博,同步失败
  2. 在详情页点击分享到微博,同步成功

分享到微博使用的是一套接口,怎么会出现这种情况呢?

发帖自动同步代码:

$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的分享接口,但是会失败了。
把上面的代码替换成下面的,同步成功。
回帖自动同步的问题同理。

标签: none

添加新评论