设为首页 收藏本站
查看: 1058|回复: 0

[经验分享] PHP调用新浪微博开放平台api发送微博实例

[复制链接]

尚未签到

发表于 2015-8-29 08:37:35 | 显示全部楼层 |阅读模式
  首先要解释一下,写的这个标题实际上是不准确的。准确的标题应该是,使用新浪SAE(Sina App Engine, http://sae.sina.com.cn )内置PHP的SDK来发送一条微博。这与直接使用开放平台api有什么区别呢?其实说到底就是这个SDK已经将平台的api封装好了,使开发者调用起来更加方便,比如开发平台api发布一条微博的接口是“statuses/update 发布一条微博信息”,发送的形式还是有点别扭,而在SDK中可以用封装好的SaeTClient类的update()方法。弄了很久才觉察出这两个概念的区别,开始时一直混淆了这两种不同开发情况的资料。
好了下面来解释一下大体的步骤(假设读者已经是新浪微博的用户了,如果不是,请先注册):

step1:在http://open.weibo.com/创建应用
(1)点选我是开发者
DSC0000.jpg
(2)点选创建应用,然后在弹出框里选择站内应用

DSC0001.jpg
(3)填写应用的一些信息,域名绑定选择否,其他根据自己的情况填写。
(4)填写完成后,系统就会显示应用的汇总信息,其中App Key,和App Secret很重要,可以说就是你这个应用的标识,开发时需要用这个标识。第一步到此就完成了。

DSC0002.jpg      step2:在SAE(Sina App Engine)http://sae.sina.com.cn/创建应用。(这上面创建应用实际就意味着,将我们开发的应用放在SAE上运行,而不需要自己去架设服务器,同时由于这上面集成了新浪开放平台PHP版的SDK,所以开发起来也比较方便。)(这一步由于我现在已经注册过了,可能步骤有一些缺失,但是关键的都在下面)

(1)注册SAE帐号

DSC0003.jpg
(2)创建新应用。需要说明一下,这个二级域名其实就是访问你应用的地址,注意创建后是不能修改的。创建后好像还需要设置安全密码,安全密码在你编辑代码的时候需要用,所以,一定不要忘了哦。

DSC0004.jpg 创建应用成功后点击如下的超链接,就可进入应用的汇总信息

DSC0005.jpg 应用汇总信息:这里有access key 和 secret key ,暂时用不到,还不清楚有什么用。
   DSC0006.jpg
(3)创建应用的代码。也就是准备开始敲代码了在上图左边导航栏,点击代码管理,然后点击“通过这里创建一个版本”,在弹出框中输入版本号1.


DSC0007.jpg   (4) 编辑代码。创建成功后显示如下,点击编辑代码


DSC0008.jpg
显示如下,现在可以自己通过左上角的两个按钮新建文件和文件夹了。 DSC0009.jpg
至于代码部分,我主要是参考下面的博客http://www.html-js.com/?p=1163,特别是关于身份认证,说得比较详细,我就不累述了。我在他的源码基础上做了一些小修改,以便能正常运行。下面是我的运行代码:


getRequestToken.php

<?php
session_start();
include ('saet.ex.class.php');
$auth=new SaeTOAuth("这里替换成你的App Key","这里替换成你的app secret");//your app key and app secret
//这一步是去sina服务器请求request token
$token=$auth->getRequestToken();
//这一步是用request token拼装认证的url,第三个参数是获得用户认证许可后跳转到的url。就是我们在SAE注册应用的二级域名
$url=$auth->getAuthorizeURL($token,true,"这里替换成你SAE应用的二级域名/getAccessToken.php");
$_SESSION['token']=$token['oauth_token'];//记录下来备用
$_SESSION['token_secret']=$token['oauth_token_secret'];

//最后将$url当成一个链接输出到页面中,用户点击了这个链接就会跳转到认证页面
echo "<a href=$url>welcome,madada!</a>";
?>

getAccessToken.php

<?php
session_start();
include ('saet.ex.class.php');
//利用第一步获得的request token和token secret来初始化SaeTOAuth对象
$auth=new SaeTOAuth("这里替换成你的App Key","这里替换成你的app secret",$_SESSION['token'],$_SESSION['token_secret']);
//去换取真正有用的access token
$accessToken=$auth->getAccessToken($_REQUEST['oauth_verifier'],$_REQUEST['oauth_token']);
//print_r($accessToken);
//存储起来,后面每次请求都要带上这两个值
$_SESSION['token']=$accessToken['oauth_token'];
$_SESSION['token_secret']=$accessToken['oauth_token_secret'];
//接下来你就可以跳转到你的应用页面开始微博之旅了,例如输出一句js,window.location.href="send.php"
//echo "token:".$_SESSION['token'];
//echo "<br/>token_secret:".$_SESSION['token_secret']."<br/>";
echo "<script>window.location.href='send.php'</script>"
?>



send.php

<?php
session_start();
//include ('saetv2.ex.class.php');
include ('saet.ex.class.php');
$auth = new SaeTClient("这里替换成你的App Key","这里替换成你的app secret", $_SESSION['token'], $_SESSION['token_secret']);
$mes = $_POST[msg];
$auth->update($mes);
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
  <form method="POST">
  要发送的微博:<input type="text" name="msg">
        <input type="submit" value="提交">
  </form>
</body>
</html>
  至此代码就完成。


step3:在新浪开发平台配置应用。回到step1中,点击左边导航栏的编辑属性,然后点击右上方的应用页面进行配置。
站内应用地址就是你要在浏览器中输入的地址,通过这个地址,你就可以访问到你存放在sae上的应用了(比我们现在的应用是发送一条微博)。而实际应用地址就是你SAE上的那个二级域名。填写完成后,就大功告成了。




step4:访问应用:发送一条微博。在浏览器中输入你的站内应用的地址+“/getRequestToken.php”,如http://apps.weibo.com/你的应用的名称/getRequestToken.php)不能直接去访问send.php文件,因为涉及到授权。(如果在同个浏览器已经登录微博,可以直接授权,不然会提示用户先登录),然后在输入框中填写你要发送的信息,然后点击提交。打开自己的微博,刷新一下,就能看见自己通过该应用发送的微博了(注意:有时候可能会延迟一两分钟才能刷出来)。


最后一点小心得:可以在http://sae.sina.com.cn/?m=devcenter&catId=13文档中心查看SDK封装好的各种方法,调用的形式都大同小异。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-105728-1-1.html 上篇帖子: PHP 按位与或 (^ 、&) 下篇帖子: php注释标准
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表