如何使用 Twitter API 获取用户访问令牌和访问密钥
Posted
技术标签:
【中文标题】如何使用 Twitter API 获取用户访问令牌和访问密钥【英文标题】:How to get user Access Token and Access Secret with the Twitter API 【发布时间】:2015-04-17 10:24:21 【问题描述】:我正在尝试编写几个 php 页面来获取用户令牌 Twitter API 1.1。我正在使用 TwitterOAuth 库 https://twitteroauth.com/
首页:twitter-go.php
用户打开它并被重定向到 twitter.com 以授权应用程序。
我猜这是使用 POST oauth/request_token 和 GET oauth/authorize 函数的地方。
第二页:twitter-back.php
一旦用户授权该应用程序,他就会从 Twitter 重定向到那里。然后它会显示用户访问令牌和用户访问密钥(或将它们存储到数据库中以供以后使用)。
我猜这是使用 POST oauth/access_token 函数的地方。
这是获取用户 Secret Token 和 Access Token 的正确方法吗?
【问题讨论】:
请在否决投票时添加评论,解释原因... 【参考方案1】:好吧,实际上我自己想通了。这是我的代码,供需要的人使用:
首页:twitter-go.php
用户打开它并被重定向到 twitter.com 以授权应用程序。
<?php
//LOADING LIBRARY
require "twitteroauth/autoloader.php";
use Abraham\TwitterOAuth\TwitterOAuth;
//TWITTER APP KEYS
$consumer_key = 'yourkey';
$consumer_secret = 'yourkey';
//CONNECTION TO THE TWITTER APP TO ASK FOR A REQUEST TOKEN
$connection = new TwitterOAuth($consumer_key, $consumer_secret);
$request_token = $connection->oauth("oauth/request_token", array("oauth_callback" => "http://boulangerie-colas.fr/twitter/twitter-back.php"));
//callback is set to where the rest of the script is
//TAKING THE OAUTH TOKEN AND THE TOKEN SECRET AND PUTTING THEM IN COOKIES (NEEDED IN THE NEXT SCRIPT)
$oauth_token=$request_token['oauth_token'];
$token_secret=$request_token['oauth_token_secret'];
setcookie("token_secret", " ", time()-3600);
setcookie("token_secret", $token_secret, time()+60*10);
setcookie("oauth_token", " ", time()-3600);
setcookie("oauth_token", $oauth_token, time()+60*10);
//GETTING THE URL FOR ASKING TWITTER TO AUTHORIZE THE APP WITH THE OAUTH TOKEN
$url = $connection->url("oauth/authorize", array("oauth_token" => $oauth_token));
//REDIRECTING TO THE URL
header('Location: ' . $url);
?>
第二页:twitter-back.php
一旦用户授权应用程序,他就会从 twitter 重定向到那里。然后显示用户访问令牌和用户访问密钥。
<?php
/**
* users gets redirected here from twitter (if user allowed you app)
* you can specify this url in https://dev.twitter.com/ and in the previous script
*/
//LOADING LIBRARY
require "twitteroauth/autoloader.php";
use Abraham\TwitterOAuth\TwitterOAuth;
//TWITTER APP KEYS
$consumer_key = 'yourkey';
$consumer_secret = 'yourkey';
//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'];
//DISPLAY THE TOKENS
echo "<b>Access Token : </b>".$accessToken."<br />";
echo "<b>Secret Token : </b>".$secretToken."<br />";
?>
请记住,您需要使用 TwitterOAuth 库https://twitteroauth.com/
【讨论】:
不错的解决方法,只有一件事,在第二页,$access_token 中的变量名 = $connection->oauth("oauth/access_token", array("oauth_verifier" => $oauth_verifier)) ;应该更改为 $request_access_token 之类的其他内容。 嗨 @Arthur 我希望你能帮助我/verify_credentials' 请在这里查看我的问题***.com/questions/46756929/… 太棒了,你真的拯救了我的一天......以上是关于如何使用 Twitter API 获取用户访问令牌和访问密钥的主要内容,如果未能解决你的问题,请参考以下文章
如何从机器人聊天中获取 Twitter OAuth 访问令牌/秘密?
用于使用访问令牌和秘密获取朋友列表的 Twitter api