Twitter OAuth (PHP):需要好的基本示例才能开始
Posted
技术标签:
【中文标题】Twitter OAuth (PHP):需要好的基本示例才能开始【英文标题】:Twitter OAuth (PHP): Need good, basic example to get started 【发布时间】:2011-09-26 21:05:27 【问题描述】:使用 Facebook 的 php SDK,我能够在我的网站上快速登录 Facebook。他们只需设置一个$user
变量即可轻松访问。
我没有那么幸运尝试让 Twitter 的 OAuth 登录工作......坦率地说,他们的 github 材料对于 PHP 和网页设计相对较新的人来说是令人困惑和无用的,更不用说许多非官方的例子了我尝试过的工作同样令人困惑或已过时。
我真的需要一些帮助才能让 Twitter 登录正常工作——我的意思只是一个基本示例,我单击登录按钮,授权我的应用程序,然后它重定向到显示登录用户名称的页面。
非常感谢您的帮助。
编辑我知道abraham's twitter oauth 的存在,但它几乎没有提供任何指令来让他的东西正常工作。
【问题讨论】:
是的,我真的一直在寻找其中一种也有效的方法。这么多似乎只是给出了不起作用的例子。 你反对使用像zend框架这样的框架吗?如果没有的话,有一些工作示例。 【参考方案1】:这是获取授权 url 的基本示例,然后在您从 twitter 回来时获取用户基本信息
<?php
session_start();
//add autoload note:do check your file paths in autoload.php
require "ret/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
//this code will run when returned from twiter after authentication
if(isset($_SESSION['oauth_token']))
$oauth_token=$_SESSION['oauth_token'];unset($_SESSION['oauth_token']);
$consumer_key = 'your consumer key';
$consumer_secret = 'your secret key';
$connection = new TwitterOAuth($consumer_key, $consumer_secret);
//necessary to get access token other wise u will not have permision to get user info
$params=array("oauth_verifier" => $_GET['oauth_verifier'],"oauth_token"=>$_GET['oauth_token']);
$access_token = $connection->oauth("oauth/access_token", $params);
//now again create new instance using updated return oauth_token and oauth_token_secret because old one expired if u dont u this u will also get token expired error
$connection = new TwitterOAuth($consumer_key, $consumer_secret,
$access_token['oauth_token'],$access_token['oauth_token_secret']);
$content = $connection->get("account/verify_credentials");
print_r($content);
else
// main startup code
$consumer_key = 'your consumer key';
$consumer_secret = 'your secret key';
//this code will return your valid url which u can use in iframe src to popup or can directly view the page as its happening in this example
$connection = new TwitterOAuth($consumer_key, $consumer_secret);
$temporary_credentials = $connection->oauth('oauth/request_token', array("oauth_callback" =>'http://dev.crm.alifca.com/twitter/index.php'));
$_SESSION['oauth_token']=$temporary_credentials['oauth_token']; $_SESSION['oauth_token_secret']=$temporary_credentials['oauth_token_secret'];$url = $connection->url("oauth/authorize", array("oauth_token" => $temporary_credentials['oauth_token']));
// REDIRECTING TO THE URL
header('Location: ' . $url);
?>
【讨论】:
这很好用。从字面上看,只是复制和粘贴更新了消费者密钥和返回 url,它按预期运行。 太棒了!这两天我整天在网上搜索。但我只得到了较旧的 twitteroauth 代码。赞!这就像黄油一样光滑!! "添加自动加载注意:请检查 autoload.php 中的文件路径" 我们必须检查什么?我应该在这个文件中修改什么? 如何在本地计算机上进行测试?应该可以省略代码的回调部分,因为这对于 java 库(例如 twitter4j)不是必需的 @Fred37b 放置自动加载文件的文件路径确保 autoload.php 中的路径相同【参考方案2】:我刚刚从 github 尝试了 abraham 的 twitteroauth,它似乎对我来说很好用。这就是我所做的
-
git 克隆https://github.com/abraham/twitteroauth.git
将其上传到您的虚拟主机,域名为 www.example.com
转到Twitter Apps 并注册您的应用程序。您需要的更改是(假设您将使用托管在 http://www.example.com/twitteroauth 的 abraham 的 twitteroauth 示例)
a) 申请网址为http://www.example.com/twitteroauth
b) 应用程序类型将是浏览器
c) 回调 url 为http://www.example.com/twitteroauth/callback.php(Callback.php 包含在 git 源中)
完成此操作后,您将获得 CONSUMER_KEY 和 CONSUMER_SECRET,您可以在 twitteroauth 发行版的 config.php 中更新它们。还要设置回调和http://www.example.com/twitteroauth/callback.php一样
就是这样。如果您现在导航到http://www.example.com/twitteroauth,您将获得“使用 Twitter 登录”,这将带您到 Twitter,授权请求并让您返回 index.php 页面。
编辑: 示例将不起作用,但不要担心。按照以上步骤上传到服务器。 确保从 github 存储库重命名文件,即 config-sample.php->config.php
如果您想查看工作示例,请找到 here
【讨论】:
谢谢,这行得通...但是如何访问$content
数组中的特定元素?如果我尝试$twittername = $content['screen_name'];
,我会收到错误Fatal error: Cannot use object of type stdClass as array
它存储为 StdClass(PHP 中使用的通用空类)。您可以通过 $content->screen_name 访问屏幕名称
两个例子都失败了。
最好通过 $content->screen_name 访问它;
截至 2020 年 1 月,此答案不适用于最新的 twitteroauth 存储库。【参考方案3】:
以下是一些带有示例的 OAuth 1.0A PHP 库:
tmhOAuth Oauth-php Twitter asyncTwitter async 提供documentation,告诉您如何按照您的要求简单地登录用户。
【讨论】:
【参考方案4】:这里是使用 PHP 将 Twitter OAuth API 集成到 Web 应用程序的分步指南。请跟随教程。
http://www.smarttutorials.net/sign-in-with-twitter-oauth-api-using-php/
您需要先通过以下 URL 创建 Twitter 应用程序
https://apps.twitter.com/
然后您需要为 twitter 应用程序提供必要的信息。一旦您提供了所有信息,然后保存它。您将获得 Twitter 应用程序 Consumer Key 和 Consumer Secret。
请从以上链接下载源文件,只需将 TWITTER_CONSUMER_KEY、TWITTER_CONSUMER_SECRET 和 TWITTER_OAUTH_CALLBACK 替换为您的 Consumer Key (API Key)、Consumer Secret (API Secret) 和回调 URL。然后将其上传到您的服务器。现在它将成功运行。
【讨论】:
感谢您添加此内容!这是我的一个老问题,但显然仍然可以作为参考。【参考方案5】:Abraham 的 Twitteroauth 在这里有一个工作演示: https://github.com/abraham/twitteroauth-demo
按照演示自述文件中的步骤操作对我有用。为了在 macOS 上运行作曲家,我必须在 installing 之后这样做:mv composer.phar /usr/local/bin/composer
IMO 演示可能会简单得多,应该包含在主 twitteroauth 存储库中。
【讨论】:
以上是关于Twitter OAuth (PHP):需要好的基本示例才能开始的主要内容,如果未能解决你的问题,请参考以下文章
如何使用php和Curl更改Twitter的状态而不使用oAuth
如何在 MySQL 和 PHP 中存储和使用 OAuth 令牌?