xweibo插件oauth接口升级到v2后的绑定官方微博

没有升级V2的请移步http://blog.linuxphp.org/archives/1565/

没有升级Token过期的提示页请移步http://blog.linuxphp.org/archives/1566/
 
问题描述:

升级完V2后在后台的时候查询设置不了官方微博账号 总是提示“无法从接口中获取用户信息”

 

针对这个问题做了一些升级

1.修改xwb/lib/xwbSiteInterface.mod.php

修改函数doPluginCfg4oc为

    function doPluginCfg4oc()
    {
    	if (!defined('XWB_S_IS_ADMIN') || !XWB_S_IS_ADMIN || !XWB_plugin::isRequestBy('POST')){
			XWB_plugin::deny('');
		}elseif(!xwb_token::checkInput('p','pluginCfg4oc', true)){
			exit(json_encode(array('error_no' => 1, 'error' => '令牌验证失败,请重试'))); //参数为空
		}
    	
        // 获取参数
        $id = trim(XWB_plugin::V('p:id')); //获取用户id参数
        $name = trim(strval(XWB_plugin::V('p:name'))); //获取用户名参数
        if ( ! $id || ! $name) exit(json_encode(array('error_no' => 1, 'error' => '无法获取参数.'))); //参数为空

        // 根据参数获取官方微博数据
        //组织参数
         
		 $params = array(
            'uid' => $id,                      //关键字
        );
         

        // 根据参数获取微博数据
        $weiboClient = XWB_plugin::getWB(); //定义微博通讯客户端
        $weiboClient->is_exit_error = false; //忽略通讯错误
        $result = $weiboClient->searchUser($params); //搜索用户

        // 发生通讯错误
        if ( ! is_array($result) || empty($result) || isset($result['error'])) exit(json_encode(array('error_no' => 1, 'error' => "无法从接口中获取用户信息.")));
 
        $ocRs = $result;

        if ( empty($ocRs) ) exit(json_encode(array('error_no' => 1, 'error' => "无法从接口中获取用户信息.")));

        // 存在头像地址
        if (isset($ocRs['profile_image_url']))
        {
            $ocRs['local_image_url'] = $ocRs['profile_image_url'];
        }
        
        $ocRs['screen_name_local_encode'] = XWB_plugin::convertEncoding($ocRs['screen_name'], 'UTF-8', XWB_S_CHARSET);

        // 将官方微博用户数据写入缓存文件
        $ocRelaFile = '/cache/owbset/owbCache.data.php'; //定义官方微博数据缓存文件相对路径
        $ocCacheFile = XWB_P_ROOT . $ocRelaFile; //定义官方微博数据缓存文件路径
        $fileContent = "<?php\r\n\$owbUserRs = " . var_export($ocRs, TRUE) . "\r\n?>"; //组织缓存数据

        // 无法写入
        if ( ! file_put_contents($ocCacheFile, $fileContent))
        {
            exit(json_encode(array('error_no' => 1, 'error' => '请确保拥有权限,无法创建数据缓存文件:' . XWB_P_DIR_NAME . $ocRelaFile)));
        }
        
        echo json_encode($ocRs); //输出json数据
    }

 

修改函数ocSearch为

    function ocSearch()
    {
    	
    	
        // 获取参数
        $q = trim(XWB_plugin::V('p:search')); //获取搜索关键字参数
        //$page = intval(XWB_plugin::V('p:page'));
        
        if (!$q || !defined('XWB_S_IS_ADMIN') || !XWB_S_IS_ADMIN || !XWB_plugin::isRequestBy('POST')){
        	exit(json_encode(array('error_no' => 1, 'error' => '请输入搜索关键字.'))); //参数为空
        }elseif(!xwb_token::checkInput('p','pluginCfg4oc', true)){
			exit(json_encode(array('error_no' => 1, 'error' => '令牌验证失败,请重试'))); //参数为空
		}

        //组织参数
        $params = array(
            'screen_name' => $q,                      //关键字
        );
        
        
        // 根据参数获取微博数据
        $weiboClient = XWB_plugin::getWB(); //定义微博通讯客户端
        $weiboClient->is_exit_error = false; //忽略通讯错误
		if (!$weiboClient->token) {
			exit(json_encode(array('error_no' => 1, 'error' => '当前管理员没有绑定微博,请先绑定'))); //参数为空
		}
        $result = $weiboClient->searchUser($params); //搜索用户
		if (isset($result['error_code']) && $result['error_code']==21332){
			 exit(json_encode(array('error_no' => 1, 'error' => '当前管理员绑定微博已过期,请重新绑定'))); 
		}
        // 发生通讯错误
        if ( ! is_array($result) || empty($result) || isset($result['error'])) exit(json_encode(array('error_no' => 1, 'error' => "无法从接口中获取用户信息.")));
        
        echo json_encode(array($result)); //输出json数据
    }

2.用附件文件覆盖旧文件

 
xwb0831.rar (12.16 K, 下载次数:154, 上传时间:2012-08-31 21:42)

Tags: xweibo

上一篇: xweibo插件oauth接口升级到v2后的Token过期的提示页   下一篇: 【原创】Xweibo插件版v2接口全面兼容X2和X2.5

你问我答

  1. #1 头像 citywar 2012-09-01 05:05:45
    试了 好像还是没用
  2. #2 头像 keminar 2012-09-01 11:01:38
    好几个人都试过了,你检查下是不是没有改对,不行可以加我QQ
    引用 citywar 说过的话:
    试了 好像还是没用
  3. #3 头像 xyyaobbs 2012-09-02 00:58:26
    太谢谢了
  4. #4 头像 xyyaobbs 2012-09-02 01:00:35
    绑定新浪微博的时候还会出
    出错啦!
    系统内部错误,请稍后重试
    怎么回事啊···
  5. #5 头像 xyyaobbs 2012-09-02 01:13:24
    OpenSSL support    enabled
    OpenSSL Version    OpenSSL 0.9.8e 23 Feb 2007
    phpinfo()显示的是这个
  6. #6 头像 keminar 2012-09-02 01:14:26
    检查是否将xweibo升级到了V2.1.5 ?
    引用 xyyaobbs 说过的话:
    绑定新浪微博的时候还会出
    出错啦!
    系统内部错误,请稍后重试
    怎么回事啊···
  7. #7 头像 xyyaobbs 2012-09-02 01:21:54
    以前是2.1 然后我去下载2.1.5直接覆盖文件 那论坛上面直接覆盖就行 然后就用了您的代码
  8. #8 头像 keminar 2012-09-02 01:24:06
    那你看下xwb/log/xwb_log.php的错误原因
    引用 xyyaobbs 说过的话:
    以前是2.1 然后我去下载2.1.5直接覆盖文件 那论坛上面直接覆盖就行 然后就用了您的代码
  9. #9 头像 xyyaobbs 2012-09-02 01:30:23
    2012-09-02 01:26:34    [WEIBO CLASS]    [ERROR]    #1    系统内部错误,请稍后重试    http://api.weibo.com/oauth2/access_token    ERROR ARRAY:

    Array
    (
         [error] =>
         [error_code] => 503
    )

    以前是2.1 然后我去下载2.1.5直接覆盖文件 那论坛上面直接覆盖就行 然后就用了您的代码[/quote]

提交疑问

回顶部