技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> PHP --> PHP for Twitter OAuth 教学演示

PHP for Twitter OAuth 教学演示

浏览:3526次  出处信息

说来话长,两三年前只是想搞个 Jabber 的 PHP Class,顺便就用上了 Livid 的 v2ex 的山寨 twitter,他起名叫 doing,我觉得这名字挺好,后来,鸭被墙了,我就琢磨着挪到 twitter 上,而且真倒了一部分数据,但我不用 twitter 的原因不是因为墙,是因为当时老看见鲸鱼,而且由于压力过大,twitter 关掉了一部分外围功能,其中就包括 GTalk 机器人,这搞得我严重不爽,因为我只用 GTalk 发,于是就自己写了一个自娱自乐了。地址是 http://plan.soulogic.com/(还有其他原因,如字数限制、以及我喜欢大量摘引一些文字,我希望有更明显的显示上的区分)

前几天在想,可以考虑做个同步,也不是很费事,一看文档,直接用 cURL 就可以发,但唯独一点不能容忍,就是发完后在 twitter.com 看到的附属信息结尾写的是“via API”,凭什么别人用的都是有名的我的就不行啊!看到 FAQ 才明白需要注册个 app,再通过 OAuth 发,才能显示 via app,于是这一天多的时间就耗在这上了。效果参见 http://twitter.com/soulogic/status/13261231824

其实麻烦就麻烦在搞明白整个过程,实现倒都很简单了,我是参考的 TwitterOAuth,把所有 cURL 过程和生成参数的过程输出到日志文件上,才算通了。

把这几行代码放上来的原因,就是为了帮别人更容易看明白整个交互过程,不用找一个完整实现再在所有地方下钩子。

还有个原因是,无论用谁的框架,都需要改一下把走代理加进去的……

把文档说明也放上来吧

点击这里下载代码 toauth.tar.gz


   PHP for Twitter OAuth 教学演示


注意:要求 PHP 版本 5.3 以上


如果你对 OAuth 还一无所知(就和我前天一样),
希望这份代码可以帮你更快的理解整个交互过程,而且也只是为了这个
如果要找一个完整实现,这个并不合适
可以考虑 http://github.com/abraham/twitteroauth 或者 Zend Framework

----------------------------------------------

首先确认你已经注册了 Application

注册地址 http://twitter.com/oauth_clients/new

你会得到 Consumer key 和 Consumer secret
把这两个字符串写到 common.inc.php 相应位置

顺便你还可以改下 callback 地址
这个地址只是引导用户访问,Twitter 并不直接访问你的 Web Server
所以在测试阶段直接用内网地址好了,这份代码暴露在公网是很危险的

对照 oauth.net 上的图

过程如下:

   1. 执行 1_start.php,得到 Request Token(步骤 A、B)
   2. 带着 Request Token 访问 twitter.com 上页面,得到用户确认
      并带着参数跳转到你指定的 2_callback.php 页面(步骤 B、C、D)
   3. 2_callback.php 发起请求,用 Request Token 换得 Access Token
      (步骤 E、F)
   4. 3_work.php 根据 Consumer key/secret 和 Access Token/secret 这四个参数
      以用户身份推一条消息(步骤 G)

整个 OAuth 的过程就是为了得到不同用户所相对应的 Access Token/secret
把这两个参数存起来后,就可以用 3_work.php 不断发了

建议继续学习:

  1. Twitter/微博客的学习摘要    (阅读:8071)
  2. 别得瑟了,你很可悲!    (阅读:6414)
  3. Twitter架构图(cache篇)    (阅读:4719)
  4. 新浪微博OAuth认证流程分析    (阅读:4060)
  5. 基于PECL OAuth打造微博应用    (阅读:4040)
  6. 深入理解OAuth与豆瓣OAuth test    (阅读:3855)
  7. 在sae中利用SaeFetchurl进行豆瓣的OAuth授权    (阅读:3553)
  8. Twitter新员工的入职过程是怎样的?    (阅读:3291)
  9. OAuth那些事儿    (阅读:3194)
  10. OAuth 1.0a与1.0协议的改进…    (阅读:2891)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1