PHP调用即时通信软件互联接口实现即时通信软件登录网站功能示例
本文实例讲述了服务器端编程语言(专业超文本预处理器的缩写)调用即时通信软件互联接口实现即时通信软件登录网站功能。分享给大家供大家参考,具体如下:
调用即时通信软件登录接口,首先要到即时通信软件互联完善开发者认证信息,并通过审核,然后创建一个网站应用,获得应用程序标识和应用程序密钥,通过审核后即可调用基本接口get_user_info(获得用户信息),实现即时通信软件登录网站功能。
废话不多,上示例代码(QQ登录李维山博客):
?服务器端编程语言(Professional Hypertext Preprocessor的缩写)标题('内容类型:文本/html;charset=utf-8 ');//应用APP ID $ app _ id=' 101486017//应用APP Key $ APP _ secret=' 13 a 1811780 f 29 D7 a5b 64 e 598 c 38 a 4494 ';//应用填写的网站回调域$ my _ URL=' http://www .msllws。top/QQ登录';//步骤1:获取授权码session _ start();$ code=$ _ REQUEST[' code '];//存放授权代码如果(空($code)) { //state参数用于防止跨站点请求伪造攻击,成功授权后回调时原样带回$ _ SESSION[' state ']=MD5(uni qid(rand(),TRUE));//拼接网址$ dialog _ URL='https://graph.qq.com/oauth2.0/authorize?response_type=codeclient_id=' .$app_id .重定向_uri=' .urlencode($my_url).状态='。$ _ SESSION[' state '];回声('脚本top.location.href=' ').$dialog_url ./script ');}//步骤2:通过授权代码获取访问令牌if($ _ REQUEST[' state ']=$ _ SESSION[' state ']| | 1){//拼接网址$ token _ URL='https://graph.qq.com/oauth2.0/token?grant_type=authorization_code ' .client_id=' .$app_id .重定向_uri=' .urlencode($my_url).client_secret=' .$app_secret .代码='。$ code $ response=file _ get _ contents($ token _ URL);//如果用户临时改变主意取消登录,返回真的!==false,否则执行步骤3 if (strpos($response,' callback ')!==false){ $ lpos=strpos($ response,'(');$ rpos=str pos($ response,');$response=substr($response,$lpos -1,$ rpos-$ lpos-1);$ msg=JSON _ decode($ response);if(isset($ msg-error)){ echo ' h3error :/H3 ' .$ msg-错误;回声h3msg :/h3 ' .$ msg-错误_描述;退出;} }//步骤3:使用访问令牌来获取用户的OpenID $ params=array();parse_str($response,$ params);//把传回来的数据参数变量化$ graph _ URL='https://graph.qq.com/oauth2.0/me?access_token=' .$ params[' access _ token '];$ str=file _ get _ contents($ graph _ URL);if (strpos($str,' callback ')!==false) { $lpos=strpos($str,'(');$ rpos=str pos($ str,');$str=substr($str,$lpos -1,$ rpos-$ lpos-1);} $ user=JSON _ decode($ str);//存放返回的数据client_id,open id if(isset($ user-error)){ echo ' h3error :/H3 ' .$ user-错误;回声h3msg :/h3 ' .$ user-error _ description;退出;}//步骤4:使用信息和访问令牌获取用户信息$ user _ data _ URL='https://graph.qq.com/user/get_user_info?access _ token={ $ params[' access _ token ']} oauth _ consumer _ key={ $ app _ id } OpenID={ $ user-OpenID } format=JSON ';$ user _ data=file _ get _ contents($ user _ data _ URL);//获取到的用户信息//以下为授权成功后的自定义操作if($user_data){ //.echo('脚本顶部。位置。http://。msllws。top '/script ');}else{ echo '未知错误;} }else{ echo('状态不匹配。"你可能是跨站点请求伪造的受害者。");}登录效果:
更多关于服务器端编程语言(专业超文本预处理器的缩写)相关内容感兴趣的读者可查看本站专题: 《php curl用法总结》 、 《PHP网络编程技巧总结》 、 《PHP数组(Array)操作技巧大全》 、 《php字符串(string)用法总结》 、 《PHP数据结构与算法教程》 及《PHP中json格式数据操作技巧汇总》
希望本文所述对大家服务器端编程语言(专业超文本预处理器的缩写)程序设计有所帮助。
版权声明:PHP调用即时通信软件互联接口实现即时通信软件登录网站功能示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。