从 Twitter 帐户检索屏幕名称?

Retrieve screen name from twitter account?

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

我搜索了 twitter gem documentation on rubydoc and looked at the Twitter API user object documentation 但无法解决问题。我确实尝试使用 client.attributesclient.to_hclient.screen_name,但收到了未知的方法错误。

就上下文而言,我目前正在开发一个 Twitter 机器人,它会在循环进入对话时自动回复主题标签。我们想阻止机器人自己发推文,所以我们目前在机器人名称中硬编码为一个不发推文的帐户。如果我们可以用 client.account_name.

之类的名称替换硬编码名称,那将会很有帮助

感谢阅读。

查看 twitter client 对象的文档 gem 说它有一个 user 方法(方法包含在用户部分)[1]。 user 方法的文档声明它 returns 当前已验证用户 [2] 的 Twitter::User 对象。此 class 继承自 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

你说

I would like to get the name for the twitter account associated with the client's access tokens and secrets

We want to prevent the bot from tweeting at itself, so we are currently hard-coding in the bot name as an account not to tweet at.

如果我没理解错的话,你想知道发送推文时使用了哪个应用程序 - 这样你就可以过滤掉它?

在每条推文中,您会发现一个名为 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 参数,不要回复任何使用您的访问令牌和密码发送的推文。