Java 如何在OAuth身份验证期间静态提供Twitter PIN
-如何在OAuth身份验证期间静态提供Twitter PIN,代码示例讨论了在PIN已经可用的情况下提供PINJava 如何在OAuth身份验证期间静态提供Twitter PIN,java,twitter,twitter4j,Java,Twitter,Twitter4j,-如何在OAuth身份验证期间静态提供Twitter PIN,代码示例讨论了在PIN已经可用的情况下提供PIN 我们的应用程序是一个独立的java应用程序,希望通过属性文件传递凭据而无需任何人工干预。Twitter将为您提供PIN码 在本例中,Twitter4J假设有人会在web浏览器中复制它给出的URL(第10行带有requestToken.getAuthorizationURL()),并通过浏览器对应用程序进行授权。之后,用户应该在示例程序中写入浏览器中显示的PIN码 本例中有两大缺点:
我们的应用程序是一个独立的java应用程序,希望通过属性文件传递凭据而无需任何人工干预。Twitter将为您提供PIN码 在本例中,Twitter4J假设有人会在web浏览器中复制它给出的URL(第10行带有
requestToken.getAuthorizationURL()
),并通过浏览器对应用程序进行授权。之后,用户应该在示例程序中写入浏览器中显示的PIN码
本例中有两大缺点:
- 人为干预
- 如果Twitter没有提供PIN码(如果Twitter应用程序的回调URL不是“
”),您会给示例程序提供哪些代码oob
requestToken.getAuthorizationURL()
处检索网页的HTML代码oauth\u令牌”
”(您已经拥有的临时oauth令牌)、“deny
”(如果您不想授权应用程序使用的标记)和“authenticity\u令牌”
”。它们都在
HTML标记中。挑选它们POST-oauth/authorize
端点。URL是https://api.twitter.com/oauth/authorize?oauth_token=
。请求必须在下面进行身份验证。这是您将发布的内容:“authenticity\u token=&session[password]=Twitter将为您提供PIN码
在本例中,Twitter4J假设有人将其提供的URL(第10行带有requestToken.getAuthorizationURL()
)复制到web浏览器中,并通过浏览器对应用程序进行授权。之后,用户应在示例程序中写入其浏览器中显示的PIN码
本例中有两大缺点:
- 人为干预
- 如果Twitter没有提供PIN码(如果Twitter应用程序的回调URL不是“
oob
”),您会给示例程序提供哪些代码
您必须模拟人工干预才能获得PIN码。不幸的是,Twitter4J似乎没有方法来实现这一点(我在Javadoc中没有看到这种方法),因此您必须自己编写以下过程:
在requestToken.getAuthorizationURL()
处检索网页的HTML代码
此HTML页面包含一个表单,其中的一些参数将与用户名(或电子邮件)和用户密码一起发布以获取PIN码。这些参数称为“oauth_令牌”
(您已经拥有的临时oauth令牌)、“deny
(如果您不想授权应用程序,则使用的标记)和”authenticity\u token
”。所有标记都位于
HTML标记中。选择它们
模拟表单的发布。为此,您必须使用POST oauth/authorize
端点。URL为https://api.twitter.com/oauth/authorize?oauth_token=
。请求必须经过以下身份验证。这是您将发布的内容:“真实性\u令牌=&session[密码]=我今天花了一些时间试图弄清楚如何使用Twitter4j库在没有用户干预的情况下进行身份验证。我得出了以下结论:
ConfigurationBuilder conf = new ConfigurationBuilder();
conf.setOAuthConsumerKey(CONSUMER_KEY);
conf.setOAuthConsumerSecret(CONSUMER_KEY_SECRET);
conf.setOAuthAccessToken(TOKEN);
conf.setOAuthAccessTokenSecret(TOKEN_SECRET);
Twitter twitter = new TwitterFactory(conf.build()).getInstance();
通过使用ConfigurationBuilder,我现在能够自动进行身份验证。当然,您需要相应地为使用者和令牌密钥设置值。我是这样验证的:
User user = twitter.verifyCredentials();
System.out.println("Successfully verified credentials of " + user.getScreenName());
希望这有帮助 今天我花了一些时间试图弄清楚如何使用Twitter4j库在没有用户干预的情况下进行身份验证。我得出了以下结论:
ConfigurationBuilder conf = new ConfigurationBuilder();
conf.setOAuthConsumerKey(CONSUMER_KEY);
conf.setOAuthConsumerSecret(CONSUMER_KEY_SECRET);
conf.setOAuthAccessToken(TOKEN);
conf.setOAuthAccessTokenSecret(TOKEN_SECRET);
Twitter twitter = new TwitterFactory(conf.build()).getInstance();
通过使用ConfigurationBuilder,我现在能够自动进行身份验证。当然,您需要相应地为使用者和令牌密钥设置值。我是这样验证的:
User user = twitter.verifyCredentials();
System.out.println("Successfully verified credentials of " + user.getScreenName());
希望这有帮助 这将为我提供生成应用程序的当前用户的屏幕名,我如何获得身份验证url,以便无论谁使用身份验证url登录,都可以使用每个twitter用户信息?@HardikBhalani,是的,这是用于无需用户交互的自动身份验证。对于您的情况,我认为您需要使用基于pin的身份验证。这将为我提供生成应用程序的当前用户的屏幕名称,我如何获取身份验证url,以便使用身份验证url登录的任何人都可以使用每个推特用户信息?@HardikBhalani,是的,这是用于无需用户交互的自动身份验证。对于您的情况,我认为您需要使用基于pin的身份验证