如何在 php 和 zend 框架中使用 twitter Oauth 获取请求来检索一些用户数据

How to use twitter Oauth get request in php and zend framework to retrieve some user data

我在使用 twitter oauth 获取一些用户数据时遇到了一个小问题。

// TWITTER APP KEYS
    $consumer_key = 'some data';
    $consumer_secret = 'some data';

    // GETTING ALL THE TOKEN NEEDED
    $oauth_verifier = $_GET['oauth_verifier'];
    $token_secret = $_COOKIE['token_secret'];
    $oauth_token = $_COOKIE['oauth_token'];

    // EXCHANGING THE TOKENS FOR OAUTH TOKEN AND TOKEN SECRET
    $connection = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_token, $token_secret);
    $access_token = $connection->oauth("oauth/access_token", array(
        "oauth_verifier" => $oauth_verifier
    ));

    $accessToken = $access_token['oauth_token'];
    $secretToken = $access_token['oauth_token_secret'];

    $connection = new TwitterOAuth($consumer_key, $consumer_secret, $accessToken, $secretToken);
    $connection->get("users/search");
    $content = $connection->get("account/verify_credentials");
    $media1 = $connection->upload('media/upload', [
        'media' => $this->session->image['generatedAbs']
    ]);
    $parameters = [
        'media_id' => implode(',', [
            $media1->media_id_string
        ])
    ];
    $result = $connection->post('account/update_profile_banner', $parameters);

现在我想检索一些信息,例如已连接用户的名字和姓氏、他的个人资料图片 link、电子邮件地址和他的位置(如果可能的话) 我阅读了官方 twitter dev documentation 但我没有找到如何在我的方法中使用它的方法,我尝试使用这种方式调试我的控制器

$connection = new TwitterOAuth($consumer_key, $consumer_secret, $accessToken, $secretToken);
    $connection->get("https://api.twitter.com/1.1/users/profile_banner.json?screen_name=twitterapi");
    $result = json_decode($connection);
    // debug the returned result 
    Zend_Debug::dump($result,$label="debug gass" , $echo= true);

因此,使用 php 和 Twitter Oauth 从 Twitter 检索信息非常简单,请允许我列举 steps

1)得到一个oauth_token和oauth_verifier(steps在问题

中有清楚的解释

2) 现在有趣的部分是 :D ,您需要在回调页面的控制器中复制粘贴以下内容:

$connection = new TwitterOAuth($consumer_key, $consumer_secret, $accessToken, $secretToken);
$content = $connection->get("account/verify_credentials");

现在你真的已经完成了一切,只需调试结果 :D

Zend_Debug::dump($content->profile_image_url , $label = "achref gassoumi", $echo = true);

ps:我在工作时使用了 zend 调试器,如果您正在使用其他框架或使用纯 php,只需回显以下结果,例如:

echo $credentials->screen_name;
echo $credentials->profile_image_url ;
echo $credentials->location;
echo $credentials->profile_background_image_url;

要检索您可能需要的其他信息,请访问 GET account/verify_credentials 的官方 twitter Oauth 文档。