目录
发送新微博
首页 后端开发 php教程 微博应用--方舟船票

微博应用--方舟船票

Jul 25, 2016 am 09:07 AM

微博小应用

2012,传说中的末日,不管真假,反正我是有诺亚方舟船票了…..

围观: http://endworld.sinaapp.com

—————————-

这是学习微博授权机制写的一个基于sae的小应用,用到了大量的GD函数

现在做下简单学习总结

1.首先要创建应用,申请appkey

新浪微博: http://open.weibo.com

腾讯社区: http://opensns.qq.com

腾讯微博: http://open.t.qq.com

2.创建完应用后,接下来我们下载相关的sdk,这里仅以php为例,注释已经写的很明白

新浪微博配置文件:

腾讯sdk : 麻花藤的东西很蛋疼,请直接下载文件,都有注释

3.一个好的应用最重要的是创意,尽情发挥你的想象
方舟船票是毫无新意的模仿,这里只简单介绍下.
①首先在 congfig.php 或 appkey.php 中填入申请到的appid 和 appkey,然后配置回调地址.
②获取用户信息,根据用户信息,使用php的gd库生成相应图片,生成图片时要注意的地方是:如果用户没有自定义过头像,头像类型是png,否则是jpg.如果是僵尸用户,可能获取不到图像和昵称.
③新浪的应用未上线时,即没通过审核时,只有开发者的账号可以使用应用,其他用户测试只能先在应用管理后台添加测试用户,并且测试用户大于10人才有机会通过审核,这是比较蛋疼的地方,但审核还是很容易通过的
⑤腾讯的应用未上线其他用户也能正常使用,但通过审核比较困难,应用中尽量不要用到非主旋律的词汇
4.方舟船票文件说明
index.php 首页登录按钮放置页
ticket-hall.php 微博回调页,引导用户开始使用
ticket.php 生成内容,为发送到微博做好准备
toweibo.php 将数据提交到微博
suc.php 告知用户成功

sdk下载: http://helong.org/download001/weibosdk.7z


方舟船票源码: http://helong.org/download001/endworld.7z

@王翔宇童鞋的疑问,这里做下说明:

程序中涉及到SAE中的storage等特性,所以只适用与sae...... 不能直接用于普通空间.......


index.php 31行 header('Location: http://endworld.sinaapp.com/qticket-hall.php'); 这是微博回调地址

qticket.php 16行,141行可以修改为相对路径,同理,涉及到的图片都可以修改为相对路径,个人代码性格不好,写的是绝对路径

ticket.php imagejpeg($im,SAE_TMP_PATH.'linshi.jpg',100);//读写方式:保存为临时文件,这里SAE_TMP_PATH是SAE中临时文件

ticket.php 156行 $s->upload('2012',$userid.'.jpg',SAE_TMP_PATH.'linshi.jpg');//这里用到了SAEstorage见http://apidoc.sinaapp.com/sae/SaeStorage.html#upload

有什么需要改进的地方,欢迎童鞋拍砖交流

  1. session_start();
  2. include_once( 'config.php' );
  3. include_once( 'saetv2.ex.class.php' );
  4. $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['token']['access_token'] );
  5. ////////////
  6. //OAuth授权之后,获取授权用户的UID
  7. $uid_get = $c->get_uid();
  8. $uid = $uid_get['uid'];
  9. $user_message = $c->show_user_by_id( $uid);//根据ID获取用户等基本信息
  10. //////////////////////
  11. //获取用户发布的微博信息列表
  12. //user_timeline_by_id($uid,$page = 1,$count = 50,$since_id = 0,$max_id = 0,$feature = 0,$trim_user = 0,$base_app = 0)
  13. //$page: 页码
  14. ///$count: 每次返回的最大记录数,最多返回200条,默认50。
  15. //$uid: 指定用户UID或微博昵称
  16. //$since_id: 若指定此参数,则只返回ID比since_id大的微博消息(即比since_id发表时间晚的微博消息)。可选。
  17. //$max_id: 若指定此参数,则返回ID小于或等于max_id的提到当前登录用户微博消息。可选。
  18. //$base_app: 是否基于当前应用来获取数据。1为限制本应用微博,0为不做限制。默认为0。
  19. //$feature: 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
  20. //$trim_user: 返回值中user信息开关,0:返回完整的user信息、1:user字段仅返回uid,默认为0。
  21. $ms = $c->user_timeline_by_id($uid); // done
  22. ///////////////////
  23. //获取用户发布的微博信息列表
  24. //user_timeline_by_name ($screen_name,$page = 1,$count = 50,$since_id = 0,$max_id = 0,$feature = 0,$trim_user = 0,$base_app = 0)
  25. //$screen_name: 微博昵称,主要是用来区分用户UID跟微博昵称,当二者一样而产生歧义的时候,建议使用该参数
  26. ?>
  27. 新浪微博V2接口演示程序-Powered by Sina App Engine
  28. =$user_message['screen_name']?>,您好!
  29. 发送新微博

  30. ///////////////
  31. //发布一条微博信息。
  32. //update ($status,$lat纬度,$long经度,$annotations方便第三方记录数据例如array("a"=>"b", "c"=>"d")) )
  33. if( isset($_REQUEST['text']) ) {
  34. $ret = $c->update( $_REQUEST['text'] ); //发送微博
  35. if ( isset($ret['error_code']) && $ret['error_code'] > 0 ) {
  36. echo "

    发送失败,错误:{$ret['error_code']}:{$ret['error']}

    ";
  37. } else {
  38. echo "

    发送成功

    ";
  39. }
  40. }
  41. /////////////////////////
  42. echo "
    ------发表图片微博----------
    ";
  43. //发表图片微博,图片//$status: 要更新的微博信息。信息内容不超过140个汉字, 为空返回400错误。
  44. //$pic_path: 要发布的图片路径, 支持url。只支持png/jpg/gif三种格式,
  45. //$lat: 纬度,发表当前微博所在的地理位置,有效范围 -90.0到+90.0, +表示北纬。可选。
  46. //$long: 可选参数,经度。有效范围-180.0到+180.0, +表示东经。可选
  47. $status='发表图片微博测试测试2012年4月23日14:25:43';
  48. $pic_path='http://www.baidu.com/img/baidu_sylogo1.gif';
  49. $ret13 = $c->upload($status,$pic_path,$lat,$long);
  50. if( isset($ret13['error_code']) && $ret13['error_code'] > 0 ) {
  51. echo "

    发表图片微博失败,错误:{$ret7['error_code']}:{$ret7['error']}

    ";
  52. } else {
  53. echo "

    发表图片微博成功

    ";
  54. }
  55. ////////////////////
  56. echo "
    --------关注用户--------
    ";
  57. //关注用户
  58. //根据uid关注:follow_by_id ($uid)
  59. $ret2 = $c->follow_by_name('tohelong');
  60. if ( isset($ret2['error_code']) && $ret2['error_code'] > 0 ) {
  61. echo "

    关注失败,错误:{$ret2['error_code']}:{$ret2['error']}

    ";
  62. } else {
  63. echo "

    关注成功

    ";
  64. }
  65. ////////////////
  66. //为当前登录用户添加新的用户标签
  67. echo "
    ---------添加标签-------
    ";
  68. $ret6 = $c->add_tags("tag2,tag3,tag4,标签测试");;
  69. if( isset($ret6['error_code']) && $ret6['error_code'] > 0 ) {
  70. echo "

    添加标签失败,错误:{$ret6['error_code']}:{$ret6['error']}

    ";
  71. } else {
  72. echo "

    添加标签成功

    ";
  73. }
  74. ////////////////////////
  75. echo "
    --------收藏一条微博--------
    ";
  76. //收藏一条微博信息
  77. $sid='3437771555685532';
  78. $ret7 = $c->add_to_favorites ($sid);//$sid =收藏的微博id
  79. if( isset($ret7['error_code']) && $ret7['error_code'] > 0 ) {
  80. echo "

    收藏失败,错误:{$ret7['error_code']}:{$ret7['error']}

    ";
  81. } else {
  82. echo "

    收藏成功

    ";
  83. }
  84. ///////////////////////
  85. echo "
    --------互粉列表--------
    ";
  86. //互粉列表
  87. $ret8 = $c-> bilateral ($uid,1,50,0);
  88. //print_r($ret8);
  89. echo $ret8['users'][0]['location'];
  90. //////////////////////
  91. echo "
    -------表情---------
    ";
  92. $ret9 = $c->emotions ($type = "face",$language = "cnname");
  93. //"face":普通表情,"ani":魔法表情,"cartoon":动漫表情
  94. //print_r($ret9);
  95. echo "微博应用--方舟船票 ";
  96. //////////////////////
  97. echo "
    --------评论微博--------
    ";
  98. //对一条微博进行评论
  99. $id='3437771555685532';//帖子id
  100. $comment='评论测试测试';
  101. $ret10 = $c->send_comment($id,$comment,$comment_ori=0);
  102. //$comment_ori: 当评论转发微博时,是否评论给原微博,0:否、1:是,默认为0
  103. if( isset($ret10['error_code']) && $ret10['error_code'] > 0 ) {
  104. echo "

    评论失败,错误:{$ret7['error_code']}:{$ret7['error']}

    ";
  105. } else {
  106. echo "

    评论成功

    ";
  107. }
  108. /////////////////////
  109. echo "
    --------据帖子id获取微博和作者--------
    ";
  110. //根据ID获取单条微博信息内容
  111. $id='3437771555685532';//帖子id
  112. $ret11 = $c->show_status ($id);
  113. //print_r($ret11);
  114. echo $ret11['text'];
  115. echo $ret11['user']['screen_name'];
  116. echo $ret11['user']['location'];
  117. ///////////////////
  118. echo "
    -------用户名id获取资料和微博---------
    ";
  119. //根据用户UID或昵称获取用户资料.也返回最新微博。
  120. //show_user_by_name ($screen_name)
  121. $ret12 = $c->show_user_by_id($uid);
  122. //print_r($ret12);
  123. echo $ret12['screen_name'];
  124. echo "微博应用--方舟船票 ";
  125. echo $ret12['status']['text'];
  126. ////////////////////
  127. echo "
    ----------------
    ";
  128. ?>
  129. =$item['id'];?> =$item['text'];?>=$item['source'];?>
  • 复制代码


    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    AI Hentai Generator

    AI Hentai Generator

    免费生成ai无尽的。

    热门文章

    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    2 周前 By 尊渡假赌尊渡假赌尊渡假赌
    仓库:如何复兴队友
    4 周前 By 尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island冒险:如何获得巨型种子
    4 周前 By 尊渡假赌尊渡假赌尊渡假赌

    热工具

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    SublimeText3汉化版

    SublimeText3汉化版

    中文版,非常好用

    禅工作室 13.0.1

    禅工作室 13.0.1

    功能强大的PHP集成开发环境

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    11个最佳PHP URL缩短脚本(免费和高级) 11个最佳PHP URL缩短脚本(免费和高级) Mar 03, 2025 am 10:49 AM

    长URL(通常用关键字和跟踪参数都混乱)可以阻止访问者。 URL缩短脚本提供了解决方案,创建了简洁的链接,非常适合社交媒体和其他平台。 这些脚本对于单个网站很有价值

    Instagram API简介 Instagram API简介 Mar 02, 2025 am 09:32 AM

    在Facebook在2012年通过Facebook备受瞩目的收购之后,Instagram采用了两套API供第三方使用。这些是Instagram Graph API和Instagram Basic Display API。作为开发人员建立一个需要信息的应用程序

    在Laravel中使用Flash会话数据 在Laravel中使用Flash会话数据 Mar 12, 2025 pm 05:08 PM

    Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

    构建具有Laravel后端的React应用程序:第2部分,React 构建具有Laravel后端的React应用程序:第2部分,React Mar 04, 2025 am 09:33 AM

    这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

    简化的HTTP响应在Laravel测试中模拟了 简化的HTTP响应在Laravel测试中模拟了 Mar 12, 2025 pm 05:09 PM

    Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

    php中的卷曲:如何在REST API中使用PHP卷曲扩展 php中的卷曲:如何在REST API中使用PHP卷曲扩展 Mar 14, 2025 am 11:42 AM

    PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

    在Codecanyon上的12个最佳PHP聊天脚本 在Codecanyon上的12个最佳PHP聊天脚本 Mar 13, 2025 pm 12:08 PM

    您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

    宣布 2025 年 PHP 形势调查 宣布 2025 年 PHP 形势调查 Mar 03, 2025 pm 04:20 PM

    2025年的PHP景观调查调查了当前的PHP发展趋势。 它探讨了框架用法,部署方法和挑战,旨在为开发人员和企业提供见解。 该调查预计现代PHP Versio的增长

    See all articles