用PHP进行Twitter反向身份验证

时间:2014-07-21 18:25:31

标签: php twitter

我正在尝试在我的api服务器上设置twitter反向身份验证。我的移动设备将调用此api端点来获取请求令牌,并使用它来使用twitter登录,并在手持设备上执行不同的操作。

我正在使用j7mbo / twitter-api-php:Simplest PHP example for retrieving user_timeline with Twitter API version 1.1

这个lib只有一个基本帖子并获得示例,但我查看了源代码并发现buildOauth执行了twitter所需的所有操作,即生成签名基本字符串和授权标头,并使用curl调用端点。

在我的代码中,我设置了consumer_key,secret,access_token密钥和secret,并设置x_auth_mode,如下所示:

$tw_settings = array(
        'consumer_key' => $app['config']['twitter_api']['consumer_key'][$culture],
        'consumer_secret' => $app['config']['twitter_api']['consumer_secret'][$culture],
        'oauth_access_token' => $app['config']['twitter_api']['api_access_token'][$culture],
        'oauth_access_token_secret' => $app['config']['twitter_api']['api_access_token_secret'][$culture],
    );

    $postfields = array(
        'x_auth_mode' => 'reverse_auth'
    );

    $twitter = new TwitterAPIExchange($tw_settings);

    $result = $twitter->setPostFields($postfields)
                ->buildOauth($url, $requestMethod)
                ->performRequest();

    return $app->json($result);

但Twitter没有进行身份验证,说"无法验证oauth签名和令牌"。

1 个答案:

答案 0 :(得分:0)

我终于开始工作了。你可以根据j7mbo / twitter-php-api获得这个git repo。我已经扩展到添加一个从twitter获取反向身份验证令牌的方法。您可以在服务器上生成此令牌,并使用设备将调用的休息端点公开它,并使用它来执行反向身份验证。通过这种方式,消费者密钥和消费者密钥可以安全地隐藏在服务器上,并且不会与所有客户端设备一起分发。

Git repo:https://github.com/srinivasmangipudi/twitter-api-php

要生成特殊请求令牌,请实例化TwitterApiExcahange对象,然后调用' buildReverseOauth'方法。 E.g:

$postfields = array(
    'x_auth_mode' => 'reverse_auth'
);

$twitter = new TwitterAPIExchange($tw_settings);

$result = $twitter->setPostfields($postfields)
            ->buildReverseOauth($url, $requestMethod)
            ->performRequest();

这应该返回oauth_access_token。休息一切都和下面一样。