exos/twitteroauth

twitteroauth 的分支,第一个支持 Twitter REST API OAuth 的 PHP 库

dev-master 2013-06-13 00:00 UTC

This package is not auto-updated.

Last update: 2024-09-28 14:22:38 UTC


README

用于与 Twitter 的 OAuth API 交互的 PHP 库。

流程概述

  1. 使用客户端凭据构建 TwitterOAuth 对象。
  2. 从 Twitter 获取临时凭据。
  3. 构建 Twitter 的授权 URL。
  4. 将用户重定向到授权 URL。
  5. 用户授权访问并从 Twitter 返回。
  6. 使用客户端凭据和临时凭据重建 TwitterOAuth 对象。
  7. 从 Twitter 获取令牌凭据。
  8. 使用客户端凭据和令牌凭据重建 TwitterOAuth 对象。
  9. 查询 Twitter API。

术语

术语自 0.1.x 版以来已更改,以更好地匹配 draft-hammer-oauth IETF RFC。您可以在 http://tools.ietf.org/html/draft-hammer-oauth 中阅读。一些术语将与 Twitter 使用的内容不同。

客户端凭据 - 当您在 Twitter 上注册应用程序时获得的消费者密钥/密钥。临时凭据 - 之前称为请求令牌。令牌凭据 - 之前称为访问令牌。

参数

在创建 TwitterOAuth 对象后,您可以修改一些参数。

将现有的 TwitterOAuth 安装切换到使用 API 的 1.1 版本。

$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.phpOAuth.php 和客户端凭据。您可以通过在 dev.twitter.com/apps 上注册您的应用程序来获取客户端凭据。

用户从 connect.php 开始,该页面显示“使用 Twitter 登录”的图像,该图像通过 redirect.php 进行超链接重定向。此按钮应显示在您的登录部分的首页上。客户端凭据保存为 config.php 中的 CONSUMER_KEYCONSUMER_SECRET。您可以在应用程序设置页面的 config 文件中保存静态回调 URL,或在步骤 2 中使用动态回调 URL。示例中请使用 https://example.com/callback.php

  1. 当用户进入 redirect.php 时,我们使用客户端凭据构建一个新的 TwitterOAuth 对象。如果您有自己的配置方法,请随意使用它而不是 config.php。

    $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET); // 使用 config.php 客户端凭据 $connection = new TwitterOAuth('abc890', '123xyz');

  2. 使用构建的 $connection 对象,您将请求 Twitter 的临时凭据。oauth_callback 值是必需的。

    $temporary_credentials = $connection->getRequestToken(OAUTH_CALLBACK); // 使用 config.php 回调 URL。

  3. 现在我们有了临时凭据,用户必须转到 Twitter 并授权应用程序访问和更新他们的数据。您还可以传递第二个参数 FALSE 以不使用 Sign in with Twitter

    $redirect_url = $connection->getAuthorizeURL($temporary_credentials); // 使用 Sign in with Twitter $redirect_url = $connection->getAuthorizeURL($temporary_credentials, FALSE);

  4. 您现在将有一个 Twitter URL,您必须将用户发送到该 URL。

    https://api.twitter.com/oauth/authenticate?oauth_token=xyz123

  5. 用户现在位于twitter.com,可能需要登录。一旦通过Twitter认证,他们可能需要点击允许/拒绝,或者将被自动重定向回回调。

  6. 现在用户已返回到callback.php并允许访问,我们需要使用临时凭证创建一个新的TwitterOAuth对象。

    $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);

  7. 现在我们向Twitter请求长期有效的令牌凭证。这些凭证对应用程序和用户是特定的,将充当密码以进行未来的请求。通常,令牌凭证会被保存在您的数据库中,但在这个例子中,我们只是使用会话。

    $token_credentials = $connection->getAccessToken($_REQUEST['oauth_verifier']);

  8. 有了令牌凭证,我们构建一个新的TwitterOAuth对象。

    $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $token_credentials['oauth_token'], $token_credentials['oauth_token_secret']);

  9. 最后,我们可以以用户身份进行请求。您可以GET、POST和DELETE API方法。直接复制API文档中的路径,并添加任何您希望包含在API方法中的参数数组,如curser或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');

贡献者