Important Note:截至2018年年中,获取Twitter API令牌的过程变得更加官僚.我花了one working week多个时间才得到一套API令牌,这是为你们提供的一个开源项目,在Packagist上有超过1.2 million installations个,在Github上有1.6k个星,理论上这应该是更优先的.
如果你的任务是在工作中使用twitter API,你必须考虑到这一潜在的非常长的等待时间.还考虑其他社交媒体途径,如脸谱网或Instagram,并提供这些选项,因为检索他们的令牌的过程是即时的.
So you want to use the Twitter v1.1 API?
100
版本1.0、will soon be deprecated和未经授权的请求将不被允许.因此,这里有一篇文章可以帮助您做到这一点,同时还提供了一个PHP类,让您的生活变得更轻松.
1. Create a developer account:在推特上给自己打developer account分
您需要访问Twitter开发人员官方网站并注册开发人员帐户.
这是请求V1.1API的free步,也是必要的一步.
2. Create an application:.在Twitter开发者网站上创建应用程序
什么你以为你可以提出未经认证的请求?而不是Twitter的v1.1 API.
在这一页上,填写你想要的任何细节.对我来说,这无关紧要,因为我只是想发出大量阻止请求,以清除垃圾邮件关注者.重点是你将得到a set of unique keys个用于你的应用程序.
因此,创建一个应用程序的目的是给自己(和Twitter)一组密钥.这些是:
- 消费者密钥
- 消费者的秘密
- 访问令牌
- 访问令牌 secret
这里有一些关于这些 token 用途的信息here.
3. Create access tokens:你需要这些才能提出成功的请求
OAuth请求一些 token .所以你需要为你生成它们.
单击底部的"创建我的访问令牌".然后,一旦再次滚动到底部,就会有一些新生成的键.对于您的API调用,您需要从该页面获取之前标记的四个键,因此请在某个地方记下它们.
4. Change access level:你不想要只读的,是吗?
如果您想要适当地使用此API,如果您正在执行使用GET个请求的标准数据检索之外的任何操作,则需要将您的设置更改为READ&;WRITE.
Select 页面顶部附近的"设置"选项卡.
授予您的应用程序读/写访问权限,然后点击底部的"更新".
你可以在这里找到Twitter使用的read more about the applications permission model个.
5. Write code to access the API:我已经为你做了大部分了
我将上面的代码(经过一些修改和更改)组合到一个PHP类中,这样发出所需的请求就非常简单.
它使用OAuth和Twitter v1.1 API,以及我创建的类,您可以在下面找到.
require_once('TwitterAPIExchange.php');
/** Set access tokens here - see: https://dev.twitter.com/apps/ **/
$settings = array(
'oauth_access_token' => "YOUR_OAUTH_ACCESS_TOKEN",
'oauth_access_token_secret' => "YOUR_OAUTH_ACCESS_TOKEN_SECRET",
'consumer_key' => "YOUR_CONSUMER_KEY",
'consumer_secret' => "YOUR_CONSUMER_SECRET"
);
确保你把从上面的应用程序中获得的密钥放在各自的空间中.
接下来,你需要 Select 一个你想要请求的URL.Twitter有100帮助你 Select URL和请求类型(POST或GET).
/** URL for REST request, see: https://dev.twitter.com/docs/api/1.1/ **/
$url = 'https://api.twitter.com/1.1/blocks/create.json';
$requestMethod = 'POST';
在文档中,每个URL都说明了您可以传递给它的内容.如果我们使用类似于上面的"block"URL,我可以传递以下POST参数:
/** POST fields required by the URL above. See relevant docs as above **/
$postfields = array(
'screen_name' => 'usernameToBlock',
'skip_status' => '1'
);
现在,您已经设置好要用API执行的操作,现在是时候发出实际请求了.
/** Perform the request and echo the response **/
$twitter = new TwitterAPIExchange($settings);
echo $twitter->buildOauth($url, $requestMethod)
->setPostfields($postfields)
->performRequest();
对于100个请求,仅此而已!
对于GET个请求,情况略有不同.下面是一个示例:
/** Note: Set the GET field BEFORE calling buildOauth(); **/
$url = 'https://api.twitter.com/1.1/followers/ids.json';
$getfield = '?username=J7mbo';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
Final code example:一个简单的获取我的追随者列表的请求.
$url = 'https://api.twitter.com/1.1/followers/list.json';
$getfield = '?username=J7mbo&skip_status=1';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
100,归功于@lackovic10和@rivers!我希望有人觉得它有用;我知道我做到了(我用它在循环中进行批量阻塞).
此外,对于Windows上那些SSL证书有问题的用户,请查看this post.这个图书馆使用卷发,所以你需要确保你有卷发证书.谷歌也是你的朋友.