腾讯开放平台——client id is illegal(100008)!错误解决_电脑技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

腾讯开放平台——client id is illegal(100008)!错误解决

作者:黑客防线网安云服务器教程网 来源:黑客防线网安云服务器教程网 浏览次数:0

本篇关键词:腾讯开放平台
黑客防线网安网讯: 今天心血来潮想借腾讯的开放平台熟悉oauth。结果就摆弄了起来,腾讯的文档还是写得很详细的,比我上一次看的已经好很多了。而且还提供了sdk,可以快速调用腾讯的开放平台,既然是学习来的,也就没图快,决定从零开
 今天心血来潮想借腾讯的开放平台熟悉oauth结果就摆弄了起来腾讯的文档还是写得很详细的比我上一次看的已经好很多了而且还提供了sdk,可以快速调用腾讯的开放平台,既然是学习来的,也就没图快,决定从零开始,手写代码。

一切都是按文档来的,可没想到第一步取access token就受挫了:

代码如下:

  1. function get_access_token() {
  2. var req_url =  https://graph.qq.com/oauth2.0/authorize;
  3.  
  4. var req_data = {
  5. response_typetoken,//授权类型,此值固定为“token”
  6. client_id201981//申请QQ登录成功后,分配给应用的appid。
  7. redirect_urihttp://www.goodje.com/labs/login/qq_login.php//成功授权后的回调地址,建议设置为网站首页或网站的用户中心。
  8. /*
  9. 请求用户授权时向用户显示的可进行授权的列表。
  10. 可填写的值是【QQ登录】API文档中列出的接口,以及一些动作型的授权(目前仅有:do_like),如果要填写多个接口名称,请用逗号隔开。
  11. 例如:scope=get_user_info,list_album,upload_pic,do_like
  12. 不传则默认请求对接口get_user_info进行授权。
  13. 建议控制授权项的数量,只传入必要的接口名称,因为授权项越多,用户越可能拒绝进行任何授权。
  14. */
  15. scopeget_user_info,
  16. statecomeonbb‘//client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。
  17. //’display’: ‘mobile’//用于展示的样式。不传则默认展示为为PC下的样式。如果传入“mobile”,则展示为mobile端下的样式
  18. }
  19. window.open(req_url + ? + buildHttpData(req_data));
  20. }

buildHttpData是我自定义的函数,用于把一个js对象转化为格式化的url参数。返回值为 {时间戳}&name1=value1&name2=value2&…

然后拼接req_url 后为: https://graph.qq.com/oauth2.0/authorize?1320327350000&response_type=token&client_id=201981&redirect_uri=http%3A%2F%2Fwww.goodje.com%2Flabs%2Flogin%2Fqq_login.php&scope=get_user_info&state=comeonbb

结果,就有了刚才那种情况了

后来分析了半天,网上也完全找不到解决办法,对比了文档上url的格式,发现除了多了时间戳外一点区别都没有,我想了下可能是参数必须是name=value的形式,服务端才能认识吧,因为url中有这么一段:?1320327350000&

而时间戳主要是之前为了防止ajax请求时读到缓存,所以才自动加上的,以前是从来都没有问题的,去掉了时间戳后,还不行,急了,仔细一看url,参数部分最前头还有个&,去了之后,好了,擦。。。正确的获取access token url为:https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=201981&redirect_uri=http%3A%2F%2Fwww.goodje.com%2Flabs%2Flogin%2Fqq_login.php&state=comeonbb

而如果把时间戳或者任意一段字符串(只要是url中允许存在的字符,而且不是name=value的形式)放到url末尾,也会有问题

如:https://graph.qq.com/oauth2.0/authorize?response_type=token&client_id=201981&redirect_uri=http%3A%2F%2Fwww.goodje.com%2Flabs%2Flogin%2Fqq_login.php&scope=get_user_info&state=comeonbb&1320327350000

会报lost which in paraml(1000028)!错误看了下响应头,server: tnginx

tnginx, 腾讯二次开发并优化过的nginx。难道优化的时候去掉了啥东西么,我记得nginx不会这样的呀,理论上这是腾讯的一个bug,不说了,反正是很坑爹的。

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-19706-1.html
网站维护教程更新时间:2013-09-27 10:55:45  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer