本文主要是介绍第三方集成qq sina,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第三方接口集成时需要注意事项
1、当第三方(QQ或sina)API重定向到我们的系统的时候,我们都可以根据它(第三方,以下也称它)返回的code得到它的用户的信息。
2、如果是QQ第三方返回的信息,那么我们为了防止用户使用QQ二次登陆的时候,拿不到上一次的信息的情况,通常性我们会在第一次登陆的时候向我们的表里面放入用户的信息。QQ存入库里的时候,建议使用openID 作为 您系统中用户表的主键,因为用户的openid是唯一的,且直接与QQ关联的,所以建议使用openid来作为主键。而name则可以作为我们数据库里的另一个字段存入库。
3、如果是sina第三方返回的信息,那么我们为了防止用户使用新浪二次登陆的时候,拿不到上一次的信息的情况,通常性我们会在第一次登陆的时候向我们的表里面放入用户的信息。用户信息存入库里的时候,建议使用uid 作为 您系统中用户表的主键,因为用户的uid是唯一的,且直接与sina关联的,所以建议使用uid来作为主键。而nickname(注:昵称)则可以作为我们数据库里的另一个字段存入库。
第三方登录接口集成
QQ登录集成可参考:网站如何集成QQ登录
新浪微博登录可参考:网站如何集成新浪微博登录
申请Appkey与Appid
在QQ的 开发平台 申请Appkey与Appid,但是申请的前提是需要域名,把拿到的appkey与appid记录下来以便后面使用。
下载Java sdk包
到技术支持中心下载Java sdk包,不要自己用httpclient去调用QQ的接口,那样不安全,可能会被别人攻击网站,下载好的sdk里会有一个demo,把demo里的lib下的依赖包放到工程lib下,然后把那几个.property文件放到src下面,并把qqconnectconfig.properties文件里的前三项改成你自己的appkey,appid,和redirect_URI(QQ同意授权后,跳回到您的系统里的哪个路径)
使用说明
在页面点击一个按钮后,跳到action里的方法,在方法里,重定向一个请求到QQAPI。用QQ的API我们直接重定向的方式如下:
1 | String url= new ServerRedirectView( new Oauth().getAuthorizeURL(request)); |
这样我们可以得到请求的路径了,使用自带的qq的sdk包,我们可以直接这样调。如果不使用这个方式,则直接发送请求:
https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=[YOUR_APPID]&redirect_uri=[YOUR_REDIRECT_URI]&scope=[THE_SCOPE] 请求上面这个地址。
请求后,会弹出一个授权页面,如果我们同意授权后,会自动跳转到我们的“redirect_uri”路径里,并在我们的“redirect_uri”后面加上“?code=XXXXXXX”,然后我们可以根据返回来的参数code来拿到access_token和其它的一些信息。
例如:我们可以拿到access_token后,可以根据它拿到用户的openid,然后根据access_token与openid可以拿到用户的信息。
代码如下:
详细见:http://connect.qq.com/manage/?apptype=web
申请Appkey与Appid
在新浪的 开发平台 下的网站接入申请Appkey与Appid,申请的前提是需要有域名,把申请到的appkey与appid记录下来,以便使用。
注意事项:在点击网站接入并填好接入的信息后,在管理中心会出现您接入的网站。点击进入您的网站接入的详细信息页,在左边的导航栏里会有一个应用信息栏目,点击展开,点击“高级信息”项目
红包箭头所指的项目请与您在系统中config.properties文件里的redirect_URI保持一致,如果不一致,会出现第三方授权错误,并且在调用系统的时候,会拿不到用户信息。
下载Java sdk包
到技术支持中心下载Java sdk包,不要自己用httpclient去调用新浪的接口,那样不安全,可能会被别人攻击网站。下载好的sdk里会有一个demo,把demo里的lib下的依赖包放到工程lib下,下载下来的文件里会有一个weibo4j包,把其拷贝放在项目的src下,并把config.properties文件里的前三项改成你自己的appkey,appid,和redirect_URI(新浪同意授权后,跳回到您的系统里的哪个路径)。
使用说明
在页面点击一个按钮后,跳到action里的方法,在方法里,重定向一个请求到sinaAPI。用sian的API我们直接重定向的方式如下:
String url = new Oauth().authorize(“code”, “code”),这样我们可以得到请求的路径了,使用自带的sina的sdk包,我们可以直接这样调。
请求后,会弹出一个授权页面,如果我们同意授权后,会自动跳转到我们的“redirect_uri”路径里,并在我们的“redirect_uri”后面加上“?code=XXXXXXX”
然后我们可以根据返回来的参数code来拿到access_token和其它的一些信息。例如:
我们可以拿到access_token对像后后,可以根据它拿到用户的access_token串和用户的ID,然后根据userid可以拿到用户的信息,getuid方法没有,自己生成一下就可以了,方便操作。代码如下:
这样,我们就可以拿到用户的信息不了。
这篇关于第三方集成qq sina的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!