kertz / twitteroauth
Requires
- php: >=5.3.0
- ext-curl: *
This package is not auto-updated.
Last update: 2023-08-26 22:42:57 UTC
README
PHP 库,用于处理 Twitter 的 OAuth API。
流程概述
- 使用客户端凭证构建 TwitterOAuth 对象。
- 从 Twitter 获取临时凭证。
- 构建 Twitter 授权 URL。
- 将用户重定向到授权 URL。
- 用户授权访问并从 Twitter 返回。
- 使用客户端凭证和临时凭证重建 TwitterOAuth 对象。
- 从 Twitter 获取令牌凭证。
- 使用客户端凭证和令牌凭证重建 TwitterOAuth 对象。
- 查询 Twitter API。
术语
自 0.1.x 版本以来,术语已更改,以更好地匹配 draft-hammer-oauth IETF RFC。您可以在 http://tools.ietf.org/html/draft-hammer-oauth 上阅读。一些术语将与 Twitter 使用的术语有所不同。
客户端凭证 - 在 Twitter 上注册应用程序时获得的消费者密钥/密钥。临时凭证 - 之前称为请求令牌。令牌凭证 - 之前称为访问令牌。
参数
创建 TwitterOAuth 对象后,您可以修改多个参数。
TwitterOAuth 的最新版本支持 Twitter API v1.1,但如果您要从 v1.0 更新旧安装,可以执行以下操作。
$connection->host = "https://api.twitter.com/1.1/";
自定义用户代理。
$connection->useragent = 'Custom useragent string';
验证 Twitter 的 SSL 证书。
$connection->ssl_verifypeer = TRUE;
TwitterOAuth.php 中还有更多您可以找到的参数。
使用示例代码扩展流程
要使用 TwitterOAuth 与 Twitter API 一起使用,您需要 TwitterOAuth.php、OAuth.php 和客户端凭证。您可以通过在 dev.twitter.com/apps 上注册您的应用程序来获取客户端凭证。
用户从 connect.php 开始,该页面显示“使用 Twitter 登录”的超链接,链接到 redirect.php。此按钮应显示在您的主页登录部分。客户端凭证作为 CONSUMER_KEY
和 CONSUMER_SECRET
保存在 config.php 中。您可以在应用程序设置页面、配置文件中保存静态回调 URL,或稍后在步骤 2 中使用动态回调 URL。在示例中使用 https://example.com/callback.php。
-
当用户到达 redirect.php 时,我们使用客户端凭证构建一个新的 TwitterOAuth 对象。如果您有自己的配置方法,您可以自由使用它而不是 config.php。
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET); // 使用 config.php 客户端凭证 $connection = new TwitterOAuth('abc890', '123xyz');
-
使用构建的 $connection 对象,您将要求 Twitter 提供临时凭证。需要
oauth_callback
值。$temporary_credentials = $connection->getRequestToken(OAUTH_CALLBACK); // 使用 config.php 回调 URL。
-
现在我们有了临时凭证,用户必须转到 Twitter 并授权应用程序访问和更新他们的数据。您也可以传递第二个参数 FALSE 以不使用 Sign in with Twitter。
$redirect_url = $connection->getAuthorizeURL($temporary_credentials); // 使用“通过Twitter登录” $redirect_url = $connection->getAuthorizeURL($temporary_credentials, FALSE);
-
现在您将拥有一个Twitter URL,您需要将用户发送到该URL。
https://api.twitter.com/oauth/authenticate?oauth_token=xyz123
-
用户现在正在twitter.com,可能需要登录。一旦通过Twitter认证,他们可能需要点击允许/拒绝,或者将被自动重定向回回调页面。
-
现在用户已返回到callback.php并允许访问,我们需要使用临时凭证构建一个新的TwitterOAuth对象。
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
-
现在我们向Twitter请求长期有效的令牌凭证。这些凭证针对应用程序和用户特定,将像密码一样用于未来的请求。通常这些令牌凭证会保存到您的数据库中,但在这个示例中我们只是使用会话。
$token_credentials = $connection->getAccessToken($_REQUEST['oauth_verifier']);
-
使用令牌凭证,我们构建一个新的TwitterOAuth对象。
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $token_credentials['oauth_token'], $token_credentials['oauth_token_secret']);
-
最后,我们就可以以用户身份进行请求。您可以使用GET、POST和DELETE API方法。直接复制API文档中的路径,并添加任何您希望包含的参数数组,例如cursor或in_reply_to_status_id。
$account = $connection->get('account/verify_credentials'); $status = $connection->post('statuses/update', array('status' => '状态文本', 'in_reply_to_status_id' => 123456)); $status = $connection->delete('statuses/destroy/12345');
贡献者
- Abraham Williams - 主要开发者,当前维护者。