腾讯开放平台——client id is illegal(100008)!错误解决
今天心血来潮想借腾讯的开放平台熟悉oauth。结果就摆弄了起来,腾讯的文档还是写得很详细的,比我上一次看的已经好很多了。而且还提供了sdk,可以快速调用腾讯的开放平台,既然是学习来的,也就没图快,决定从零开始,手写代码。
一切都是按文档来的,可没想到第一步取access token就受挫了:
代码如下:
- function get_access_token() {
- var req_url = ‘ https://graph.qq.com/oauth2.0/authorize‘;
- var req_data = {
- ‘response_type‘: ‘token‘,//授权类型,此值固定为“token”
- ‘client_id‘: ‘201981‘, //申请QQ登录成功后,分配给应用的appid。
- ‘redirect_uri‘: ‘http://www.goodje.com/labs/login/qq_login.php‘, //成功授权后的回调地址,建议设置为网站首页或网站的用户中心。
- /*
- 请求用户授权时向用户显示的可进行授权的列表。
- 可填写的值是【QQ登录】API文档中列出的接口,以及一些动作型的授权(目前仅有:do_like),如果要填写多个接口名称,请用逗号隔开。
- 例如:scope=get_user_info,list_album,upload_pic,do_like
- 不传则默认请求对接口get_user_info进行授权。
- 建议控制授权项的数量,只传入必要的接口名称,因为授权项越多,用户越可能拒绝进行任何授权。
- */
- ‘scope‘: ‘get_user_info‘,
- ‘state‘: ‘comeonbb‘//client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。
- //’display’: ‘mobile’//用于展示的样式。不传则默认展示为为PC下的样式。如果传入“mobile”,则展示为mobile端下的样式
- }
- window.open(req_url + ‘?‘ + buildHttpData(req_data));
- }
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)!错误解决相关推荐
- 腾讯开放平台 手机QQ登录 错误码:110406 解决办法
作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/4204284.html 原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动 腾讯开发平台 ...
- 腾讯开放平台创建应用的坑,安卓和iOS端如何共用同一个Appid?
很多人遇到一种情况,就是自己的应用使用QQ登录的时候,在不同客户端,返回的openid竟然不一样,导致统一个用户在不同客户端创建了不同的账号. 这时候有两种解决方法: 第一种:需要发邮件给腾讯开放平台 ...
- 【腾讯开放平台】Android、IOS实现指定QQ临时会话功能
腾讯开放平台提供了WPA接口,能够实现对于普通用户,无需加其好友就能和其发起临时会话(但是对于400开头的企业QQ号,如Mob平台的企业QQ:4006852216 ,必须先加其好友才能实现临时会话), ...
- 腾讯开放平台认领应用 遇到的问题
腾讯开放平台认领应用 遇到的问题 今天在腾讯应用市场上提交应用的时候,上传完apk的包 提示我已经有同名的了. 这就难受了~~ 好吧 那就按照他的指引 进行认领应用吧 然后就到这个页面了 在这期间 我 ...
- cordova项目打包并更新腾讯开放平台安装包、加固重新签名步骤
打包apk 1.在webstorm中打开cordova项目,执行 cordova build android 这样会生成debug版的apk. 2.打包完成后会提示输出目录 一般是: /项目根目录/p ...
- qqp2011java_腾讯开放平台中实现QQ登陆的功能
昨天为自己的网站实现了QQ登陆的功能,虽然,没有进行绑定,但是在技术层面上来说,已经了解了一点腾讯开放平台的协议. 具体什么是OAUTH,请您GG一下吧... 关于腾讯的开放平台,最主要的就是参数一定 ...
- 【二维码】新浪开放平台和腾讯开放平台试水
尝试在新浪开放平台和腾讯开放平台修改应用.初步尝试了下,发现新浪的流程和步骤十分清晰,可是到腾讯,就傻眼了. 光平台,就有下面三个,尼玛,这不是坑爹嘛!新旧平台,新旧流程,新旧接口,在加上有空间,微博 ...
- 关于腾讯开放平台应用宝sig签名的问题
这两天搞个腾讯开放平台搞的心力憔悴, 第一是官方文章写的很不清楚, 腾讯开放平台第三方应用签名参数sig的说明 Step 1. 构造源串 源串是由3部分内容用"&"拼接起来 ...
- 官僚、傲慢、冷漠的腾讯开放平台
我们开发了一个APP:思事日程笔记,用于统一规划思想.知识.事情.2017年发布到了腾讯开放平台,一直正常显示.(目前在腾讯开放平台名称:思事自我管理) 去年12月19日接到通知,因缺少版权证明,应用 ...
最新文章
- arcgis 分区 属性值_如何使用ArcGIS计算分区河流(管线)总长度
- loadrunner11录制不成功解决方法(收集)
- 下拉选择_在管理Excel中实现联动下拉选择
- hashMap 底层原理+LinkedHashMap 底层原理+常见面试题
- TensorFlow tf.keras.layers.RNN
- 异步 HttpContext.Current 为空null 另一种解决方法
- 像excel一样规律填充(二)
- javascript闭包(转)
- 约数定理和分解质因数
- apache 服务器修改网站默认首页
- 深信服云桌面linux客户端,深信服桌面云
- table固定表头、固定列
- 支付宝app支付-php
- 平台商家面临“血本无归”风险,你真的了解电商二清吗
- SQL数据库快照删除
- Java基础学习九 多线程
- 系统的零点、极点物理含义
- Win10 RealSense L515 ORBSLAM2 配置全攻略
- 电脑计算机桌面窄,大神讲解电脑屏幕变窄且两边是黑的鼠标点不到?
- Codevs2404糖果——差分约束系统整理