0

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

在 ruby​​doc 上搜索了 twitter gem 文档并查看了Twitter API 用户对象文档,但无法解决问题。我确实尝试使用client.attributes,client.to_hclient.screen_name,但收到未知方法错误。

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

谢谢阅读。

4

2 回答 2

1

查看clienttwitter gem 对象的文档说它有一个user方法(来自用户部分的方法)[1]。该user方法的文档说明它返回Twitter::User当前经过身份验证的用户的对象 [2]。此类继承自BasicUserscreen_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
于 2018-03-11T00:47:56.017 回答
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 密钥提供一个唯一的名称和 URL。当您检索推文时,请检查source参数,不要回复任何使用您的访问令牌和密码发送的推文。

于 2018-03-11T12:27:42.103 回答