rudak/twitter-oauth-bundle

Symfony的Twitter O-authentication Bundle

安装: 27

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

dev-master 2014-12-22 12:14 UTC

This package is auto-updated.

Last update: 2024-09-11 14:28:04 UTC


README

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

流程概述

  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的最新版本支持Twitter API v1.1,但如果您想从v1.0更新旧安装,可以执行以下操作。

$connection->host = "https://api.twitter.com/1.1/";

自定义useragent。

$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。此按钮应显示在您的登录部分的主页上。客户端凭据以CONSUMER_KEYCONSUMER_SECRET的形式保存在config.php中。您可以在应用程序设置页面、配置文件中保存静态回调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,必须将其发送给用户。

    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');

贡献者