调试腾讯微博开发平台鉴权和API的一点体会

本文详细介绍了使用SDK开发腾讯微博OAuth1.0接口的过程,包括获取请求令牌、生成签名、处理中文内容和特殊字符、访问用户头像地址等关键步骤。同时分享了在开发过程中遇到的常见问题及其解决方法,例如签名验证失败、参数编码、错误处理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        由于开发的应用需要发微博(OAuth1.0),近来几日都在调试腾讯微博的这个接口,到此时此刻个人觉得最快的办法就是:

                首先看明白官方的说明,

                然后下个sdk(本人使用的java)包参考一下他们的example,

                最后按照示例的流程,调用sdk中的方法一步步走完,搞定

         (本人在sdk中发现个小小的错误,下面会做说明)

         本人比较苦逼,之前并不知道有sdk这个好东西可以下载,所以在看了一通说明文档后就开始噼里啪啦的敲了一通代码,感觉还是挺顺利的,但是在调试的时候问题就来了,签名总是无法通过【Invalid signature】,最后历经千辛万苦,总算得以通过但是偶尔还是会出现这个错误,虽然频率不是很高,但是终究是有问题。最后得高人指点发现有sdk这样的神器,无奈之时下载下来后最终完全解决掉了。

         以下几处时需要注意的地方:

         1,获取未授权的request token时,签名密钥【密钥为:App Secret&Access Token Secret】此时只有App Secret而没有Access Token Secret,所以此时的密钥的组成应该为:【App Secret&】。

          2,生成的签名的baseString必须排序

          3,发含中文的微博时:中文需要 URLEncoder.encode两次,即URLEncoder.encode(baseString, "UTF-8”)一次,生成baseString时URLEncoder.encode("内容", "UTF-8”)  一次。

          4,微博内容中含有空格时,空格被URLEncoder后会变为 20%  此时需要把 20% 变为 + (sdk中是这样处理的)

/**
     * 对参数进行UTF-8编码,并替换特殊字符
     * 
     * @param paramDecString 待编码的参数字符串
     * @return 完成编码转换的字符串
     */
    public static String paramEncode(String paramDecString) {
        if (!hasValue(paramDecString)) {
            return "";
        }
        try {
            return URLEncoder.encode(paramDecString, "UTF-8").replace("+", "%20")
                    .replace("*", "%2A").replace("%7E", "~")
                    .replace("#", "%23");
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException(e.getMessage(), e);
        }
    }

以上是sdk中的处理源码

        5,通过【获取自己的详细资料  user/info】接口获取微博头像地址时,需要在得到的url后面加上需要的尺寸才能访问,如:http://app.qlogo.cn/mbloghead/d387538f629cfb53c2b0  需要加上 /180  即:http://app.qlogo.cn/mbloghead/d387538f629cfb53c2b0/180 (尺寸有多种:10/.../100/180)


以上就是本人在开发过程中遇到的问题,仅供参考!

 

在授权的回调处理的时候,带有一个参数 oauth_verifier  而sdk的方法(OAuthV1Client.parseAuthorization())中进行判断的名字是 vcode在运行时由于这个错误会通不过

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值