从Twitter帐户中检索屏幕名称?

时间:2018-03-11 00:08:57

标签: ruby-on-rails ruby twitter twitter-rest-api

是否可以从Twitter REST客户端的实例获取Twitter帐户的用户名?具体来说,我想获得与客户端访问令牌和机密相关的Twitter帐户的名称。

我搜索了twitter gem documentation on rubydoc并查看了Twitter API user object documentation,但未能解决问题。我确实尝试使用client.attributesclient.to_hclient.screen_name,但收到了未知方法错误。

对于上下文,我目前正在开发一个twitter机器人,当它被循环到一个对话中时会自动回复主题标签。我们希望阻止机器人自己发推文,因此我们目前正在将机器人名称中的硬编码作为一个帐户而不是发推文。如果我们可以用client.account_name

之类的东西替换硬编码名称会很有帮助

感谢阅读。

2 个答案:

答案 0 :(得分:1)

查看twitter gem的client对象的文档说它有user方法(用户部分包含的方法)[1]。 user方法的文档声明它返回当前已验证用户的Twitter::User对象[2]。此类继承自BasicUser方法所在的screen_name [3]。

client.user.screen_name
  1. http://www.rubydoc.info/gems/twitter/Twitter/REST/Client
  2. http://www.rubydoc.info/gems/twitter/Twitter/REST/Users#user-instance_method
  3. http://www.rubydoc.info/gems/twitter/Twitter/BasicUser

答案 1 :(得分:0)

你说

  

我想获取与客户访问令牌和秘密相关联的Twitter帐户的名称

  

我们希望阻止僵尸程序自行发推文,因此我们目前正在将机器人名称中的硬编码作为一个帐户而不是发推文。

如果我理解正确,您想知道哪个应用程序用于发送推文 - 那么您可以将其过滤掉吗?

在每条推文中,您会找到一个名为source的属性。这显示了用户发送推文的应用程序。

例如,

"created_at": "Sun Mar 11 11:25:05 +0000 2018",
"source": "\u003ca href=\"http:\/\/twitter.com\/download\/android\" rel=\"nofollow\"\u003eTwitter for Android\u003c\/a\u003e",
"in_reply_to_status_id_str": "972414342166654976",

这条推文是使用Twitter发送给Android的API密钥。

在这个例子中:

"source": "\u003ca href=\"http:\/\/shkspr.mobi\/blog\/tag\/solar\/\" rel=\"nofollow\"\u003eEdent's Solar Panels\u003c\/a\u003e",
"in_reply_to_status_id": null,

推文是从我的个人API密钥发送的。

为您的API密钥指定唯一的名称和网址。当您检索推文时,请检查source参数,并且不要回复使用您的访问令牌和密码发送的任何内容。