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

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

代码如下:

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

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,不说了,反正是很坑爹的。

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

  1. 腾讯开放平台 手机QQ登录 错误码:110406 解决办法

    作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/4204284.html 原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动 腾讯开发平台 ...

  2. 腾讯开放平台创建应用的坑,安卓和iOS端如何共用同一个Appid?

    很多人遇到一种情况,就是自己的应用使用QQ登录的时候,在不同客户端,返回的openid竟然不一样,导致统一个用户在不同客户端创建了不同的账号. 这时候有两种解决方法: 第一种:需要发邮件给腾讯开放平台 ...

  3. 【腾讯开放平台】Android、IOS实现指定QQ临时会话功能

    腾讯开放平台提供了WPA接口,能够实现对于普通用户,无需加其好友就能和其发起临时会话(但是对于400开头的企业QQ号,如Mob平台的企业QQ:4006852216 ,必须先加其好友才能实现临时会话), ...

  4. 腾讯开放平台认领应用 遇到的问题

    腾讯开放平台认领应用 遇到的问题 今天在腾讯应用市场上提交应用的时候,上传完apk的包 提示我已经有同名的了. 这就难受了~~ 好吧 那就按照他的指引 进行认领应用吧 然后就到这个页面了 在这期间 我 ...

  5. cordova项目打包并更新腾讯开放平台安装包、加固重新签名步骤

    打包apk 1.在webstorm中打开cordova项目,执行 cordova build android 这样会生成debug版的apk. 2.打包完成后会提示输出目录 一般是: /项目根目录/p ...

  6. qqp2011java_腾讯开放平台中实现QQ登陆的功能

    昨天为自己的网站实现了QQ登陆的功能,虽然,没有进行绑定,但是在技术层面上来说,已经了解了一点腾讯开放平台的协议. 具体什么是OAUTH,请您GG一下吧... 关于腾讯的开放平台,最主要的就是参数一定 ...

  7. 【二维码】新浪开放平台和腾讯开放平台试水

    尝试在新浪开放平台和腾讯开放平台修改应用.初步尝试了下,发现新浪的流程和步骤十分清晰,可是到腾讯,就傻眼了. 光平台,就有下面三个,尼玛,这不是坑爹嘛!新旧平台,新旧流程,新旧接口,在加上有空间,微博 ...

  8. 关于腾讯开放平台应用宝sig签名的问题

    这两天搞个腾讯开放平台搞的心力憔悴, 第一是官方文章写的很不清楚, 腾讯开放平台第三方应用签名参数sig的说明 Step 1. 构造源串 源串是由3部分内容用"&"拼接起来 ...

  9. 官僚、傲慢、冷漠的腾讯开放平台

    我们开发了一个APP:思事日程笔记,用于统一规划思想.知识.事情.2017年发布到了腾讯开放平台,一直正常显示.(目前在腾讯开放平台名称:思事自我管理) 去年12月19日接到通知,因缺少版权证明,应用 ...

最新文章

  1. arcgis 分区 属性值_如何使用ArcGIS计算分区河流(管线)总长度
  2. loadrunner11录制不成功解决方法(收集)
  3. 下拉选择_在管理Excel中实现联动下拉选择
  4. hashMap 底层原理+LinkedHashMap 底层原理+常见面试题
  5. TensorFlow tf.keras.layers.RNN
  6. 异步 HttpContext.Current 为空null 另一种解决方法
  7. 像excel一样规律填充(二)
  8. javascript闭包(转)
  9. 约数定理和分解质因数
  10. apache 服务器修改网站默认首页
  11. 深信服云桌面linux客户端,深信服桌面云
  12. table固定表头、固定列
  13. 支付宝app支付-php
  14. 平台商家面临“血本无归”风险,你真的了解电商二清吗
  15. SQL数据库快照删除
  16. Java基础学习九 多线程
  17. 系统的零点、极点物理含义
  18. Win10 RealSense L515 ORBSLAM2 配置全攻略
  19. 电脑计算机桌面窄,大神讲解电脑屏幕变窄且两边是黑的鼠标点不到?
  20. Codevs2404糖果——差分约束系统整理

热门文章

  1. OPPO R15 安装Charles的https证书时,提示 存储设备中没有和该用户证书匹配的颁发者证书 的解决方法
  2. Python遍历json文件,并更换变量
  3. 因特尔黑科技:黑暗中快速成像系统
  4. 华为在国内智能手机市场领先优势明显,有助实现2亿出货量
  5. Vue中v-if的妙用,v-show无法替代
  6. 《大象 Thinking in UML》学习笔记(十)——需求分析
  7. (13)达梦DMETL数据交换平台技术原理及应用介绍
  8. 2.5 等比数列的前n项和
  9. 英语学习——螓首蛾眉
  10. vue项目 quill 富文本支持表格