如何解决使用静态机密验证Twitter机器人?
我的计划:
我正在写一个机器人,它将不时地使用tweetinvi(https://github.com/linvi/tweetinvi)库发送一些推文。
该机器人当前正在使用我在开发人员控制台中生成的访问令牌和秘密。
问题:
机器人现在将使用我的个人帐户发送推文。这就是为什么我创建了一个新的辅助帐户的原因,该帐户将在以后的推文中使用。
但是我现在如何认证该机器人?
-
新帐户不是开发者帐户,并且在帐户设置中看不到任何生成访问令牌和密码的选项。
-
此外,我认为通常的oauth“单击Twitter图标并登录到Twitter”登录不是我的机器人的正确选择,因为我没有网站或浏览器会话,只是可以在任何地方运行的程序。
我不能为我的辅助帐户创建某种静态访问令牌和密码吗?
如果不可能的话,您建议我做什么?
解决方法
是的,您可以为辅助帐户创建访问令牌和密码。做到这一点的标准方法是在应用程序中使用Twitter实现登录,这需要Web后端。
有两种选择:
- 您可以使用
twurl
,这是Twitter提供的命令行工具。您需要先安装Ruby,然后再安装twurl
。使用twurl
,您可以运行
twurl authorize --consumer-key [your API token] --consumer-secret [your API secret]
这将提供您应该在浏览器中打开的URL。对您的辅助帐户进行身份验证,然后在您的终端中输入PIN。帐户令牌和密钥将放置在主目录中名为.twurlrc
的隐藏文件中,您可以像当前使用主帐户令牌一样将它们用于机器人。
- 您可以使用another utility called tw-oob-oauth-cli做同样的事情。因为您不需要安装Ruby,而只需下载Windows二进制文件,这会更容易一些。您需要使用.exe扩展名重命名二进制文件。
tw-oob-oauth.exe --key [your API token] --secret [your API secret]
浏览完网络流程后,这将在终端上输出帐户令牌和密码。
,要通过Tweetinvi进行身份验证,您可以按照此处的指南进行操作:under clahe_2.png
var appClient = new TwitterClient("CONSUMER_KEY","CONSUMER_SECRET");
// Start the authentication process
var authenticationRequest = await appClient.Auth.RequestAuthenticationUrlAsync();
// Go to the URL so that Twitter authenticates the user and gives him a PIN code.
Process.Start(new ProcessStartInfo(authenticationRequest.AuthorizationURL)
{
UseShellExecute = true
});
// Ask the user to enter the pin code given by Twitter
Console.WriteLine("Please enter the code and press enter.");
var pinCode = Console.ReadLine();
// With this pin code it is now possible to get the credentials back from Twitter
var userCredentials = await appClient.Auth.RequestCredentialsFromVerifierCodeAsync(pinCode,authenticationRequest);
// You can now save those credentials or use them as followed
var userClient = new TwitterClient(userCredentials);
var user = await userClient.Users.GetAuthenticatedUserAsync();
Console.WriteLine("Congratulation you have authenticated the user: " + user);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。