手动Twitter REST API身份验证

3
基本上我想使用Twitter用户查找(REST API)方法,这个链接是: http://apiwiki.twitter.com/w/page/24142947/Twitter-REST-API-Method:-users-lookup 但只需要一个请求,所以更多的是手动操作。
当API支持基本身份验证时,我可以插入我的用户名/密码并收集有关在给定主题/搜索中发推文的人的信息(例如他们有多少追随者、位置等——主要用于影响力/投资回报目的)。我只需请求XML,格式化它并将其推入Excel文件中进行处理。
由于Twitter不再支持此方法的基本身份验证,我是否可以以其他方式手动请求此信息,或者是否实际上需要设置oAuth?
是否有其他更简单的选项?
2个回答

1

我使用 LINQPad 进行 Twitter 数据挖掘; 它是我用过的最好的练习任何代码的工具之一。它是一个免费实用程序(只有当您需要语句自动完成和其他一些精巧的功能时才需要支付,但您不需要它们)。如果您不运行 Windows,则这对您没有什么用处,但如果您有可以使用的 Windows 计算机,则使用 LINQPad 提供的 Dump() 方法可以节省大量时间。

使用 LINQPad

首先,您必须向 Twitter 注册应用程序。Adam 在他的答案中很好地介绍了如何在 dev.twitter.com 上设置应用程序。

一旦拥有 OAuth 令牌,下载并安装 LINQPad 和 .NET Framework 4.0(如果您还没有安装它)。

接下来,获取Twitterizer,这是一个很棒的.NET Twitter库。我在本例中使用版本2.3.1。将ZIP文件解压到稍后可以引用的位置。现在我们可以开始了。

启动LINQPad,单击查询1窗口,将语言更改为C#语句

接下来按F4打开查询属性。在附加引用选项卡上,单击浏览...并找到先前提取的Twitterizer2.dll

Adding a reference to Twitterizer2.dll in LINQPad

现在,点击“附加命名空间导入”选项卡,并在窗口中输入Twitterizer

Adding a reference to Twitterizer in LINQPad

现在点击“确定”,我们就可以编写查询了。

在“查询1”窗口中,输入以下代码:

OAuthTokens tokens = new OAuthTokens();
tokens.ConsumerKey = "YourConsumerKey";
tokens.ConsumerSecret = "YourConsumerSecret";
tokens.AccessToken = "YourAccessToken";
tokens.AccessTokenSecret = "YourAccessSecret";

TwitterUser.Lookup(
  tokens, 
  new LookupUsersOptions { 
    ScreenNames={"arcain","dotnetdevbuzz"}, IncludeEntities=true 
  }
).Dump(); // the magic happens here!

现在按下 F5 执行查询,LINQPad 就会前往 Twitter 获取结果。
使用 Dump() 输出的结果格式良好,整个对象都呈现出来,无需明确引用任何内容,像这样:

Results from calling Twitter using LINQPad and Twitterizer

您可以点击 导出结果 将结果导出到 Excel、Word 或仅 HTML,但您可能需要直接引用一些对象字段以定位报告数据。
哦,而且您可以将 Dump() 应用于几乎任何东西,因此它是任何工具箱的不错补充。无论如何,我希望您能利用这个工具,因为我发现它真的可以节省时间。

我完成了上述工作,然后想起了 Twitter 开发控制台 Twurl。Twurl 是一个简单的控制台,可以从 dev.twitter.com 的 Apps 标签中找到。您可以通过页面右侧的链接找到它:

Link to the Twurl Console

现在,如果 Twurl 没有 出问题 的话,它将会非常棒,但是它仍然存在问题。所以,下一个最好的选择(如果你仍然想要一个类似于 LINQPad 的网络控制台替代品)就是使用像 apigee.com 这样的免费服务,它也支持 OAuth。


谢谢!出乎意料的是,你提供的链接之一带我去了http://app.apigee.com/console,它基本上实现了我想要的功能,包括oauth身份验证!对于像我这样的小型API需求来说非常酷。 - Jane Panda

1

如果您不想进行任何编程,只需在浏览器中输入URL,您可以使用/users/show一次一个用户来完成此操作:

http://api.twitter.com/1/users/show.xml?screen_name=barackobama

这不需要任何身份验证。如果您想一次获取多个用户使用 /users/lookup,您需要编写使用 OAuth 的代码。


我很担心这一点;不过,你可以一次查找一个用户(尽管在 Twitter 方面有些低效),这仍然是有用的。你是否有关于如何最好地实现简单 oAuth 设置的任何信息?我真的很想使用完全客户端侧的东西,但我也有可以托管服务器端解决方案的地方。 - Jane Panda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接