微博开发中的问题

来源:互联网 发布:java 日志统计分析 编辑:程序博客网 时间:2024/06/02 05:29

1、php sdkdemo使用中出现Forbidden问题
修改index.php里面
callback地址写成全路径。
$aurl =$o->getAuthorizeURL( $keys['oauth_token'] ,false,'http://localhost/mblog/callback.php');
以及
<ahref="<?php echo$aurl?>">Use Oauth tologin</a>
2、Java uploadStatus上传图片时出现 "40009:Error: systemerror, does multipart has image?"
    ImageItemitem=new ImageItem("pic",content);要是pic!


3、C# SDKstatuses_upload(401)未经授权错误
这个是原C#SDK作者的一个笔误。
oAuthSina.cs里有
private string _consumerKey ="";
public stringConsumerKey
        {
            get
            {
                if(_consumerKey.Length == 0)
                {
                    _consumerKey= "*********";
                }
                return_consumerKey;
            }
            set{ _consumerKey = value; }
        }
但是在使用这个值的时候,原作者笔误
在oAuthWebRequest和oAuthWebRequestWithPic方法中,使用这个值的代码:
postData +="&source=" + _consumerKey;
于是乎,source这个参数值=""。必须改成
postData +="&source=" + ConsumerKey ;
而错误为何发生在上传图片微博时,因为虽然文档上是OAUTH不需要source参数,但实际上是需要的,否则返回401。而上传文本微博,则不要也是行的。所以又可以。建议以防万一,都修改了吧。

4、api发图片微博报错常见问题解决办法?
    编码UTF-8,中文Encode。
    图片的内容pic参数不参与签名(及不组装在签名计算时的baseString里面)
5、同一个浏览器授权多个账号的问题。
    可以用end_session当前用户退出登录
6、Error_code: 400; Error: 40022:Error: sourceparamter(appkey) is missing,
缺少source参数,添加source参数如下:source=你的appkey.

7、如何获取授权登陆后与自己的网站会员实现绑定
    获取accesstoken的后调用verify_credentials来获取 user id
    这个值不会变 你可以在数据库里面加一个column 叫user_id
    如果数据库中没有相应的值 就添加新用户 如果有的找到它并登录。

    同时accesstoken是长期有效且不变的,在用户解除授权前。

8、sina微博session不失效时,如何让我的网站登陆的时候出现换个账号的提示?
    授权页面有,有cookie时可以看到.
    或者用end_session。清除已验证用户的session,退出登录,并将cookie设为null。主要用于widget等web应用场合。

9、接口调用次数为0的问题
      当天创建的应用调用接口次数要次日才能统计显示出来

      分享类应用不计入接口调用次数
      basic认证
10、Oauth认证
        组装baseString时的method必须为POST

      baseString组装是有参数顺序,按名称排序,上传时没关系
      全传没有问题,关键是所有参数必须参与签名      签名得到的oauth_signature要urlencode后放进header
      urlEncode需要统一使用大写。
      token_rejected:
        if(isOauth) {// oauth验证方式 args[0]:访问的token;args[1]:访问的密匙
            weibo.setToken(args[0],args[1]);
        }else {// 用户登录方式
            weibo.setUserId(args[0]);//用户名/ID
            weibo.setPassword(args[1]);//密码
        }
      Weibo weibo = getWeibo(true, args);
      如果isOauth=true的话,你args[0]和args[1]传的应该是accesstoken和accesstokensecret,
isOauth=false的话,就是传的才是用户名和密码。





感谢大家的反馈和及时回复,以及彼此的互相帮助。

原创粉丝点击