Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在OAuth身份验证期间静态提供Twitter PIN_Java_Twitter_Twitter4j - Fatal编程技术网

Java 如何在OAuth身份验证期间静态提供Twitter PIN

Java 如何在OAuth身份验证期间静态提供Twitter PIN,java,twitter,twitter4j,Java,Twitter,Twitter4j,-如何在OAuth身份验证期间静态提供Twitter PIN,代码示例讨论了在PIN已经可用的情况下提供PIN 我们的应用程序是一个独立的java应用程序,希望通过属性文件传递凭据而无需任何人工干预。Twitter将为您提供PIN码 在本例中,Twitter4J假设有人会在web浏览器中复制它给出的URL(第10行带有requestToken.getAuthorizationURL()),并通过浏览器对应用程序进行授权。之后,用户应该在示例程序中写入浏览器中显示的PIN码 本例中有两大缺点:

-如何在OAuth身份验证期间静态提供Twitter PIN,代码示例讨论了在PIN已经可用的情况下提供PIN


我们的应用程序是一个独立的java应用程序,希望通过属性文件传递凭据而无需任何人工干预。

Twitter将为您提供PIN码

在本例中,Twitter4J假设有人会在web浏览器中复制它给出的URL(第10行带有
requestToken.getAuthorizationURL()
),并通过浏览器对应用程序进行授权。之后,用户应该在示例程序中写入浏览器中显示的PIN码

本例中有两大缺点:

  • 人为干预
  • 如果Twitter没有提供PIN码(如果Twitter应用程序的回调URL不是“
    oob
    ”),您会给示例程序提供哪些代码
您必须模拟人为干预才能获得PIN码。不幸的是,Twitter4J似乎没有方法来实现这一点(我在Javadoc中没有看到这样的方法),因此您必须自己编写以下过程:

  • requestToken.getAuthorizationURL()
    处检索网页的HTML代码
  • 此HTML页面包含一个表单,其中的一些参数将与用户名(或电子邮件)和用户密码一起发布,以获取PIN码。这些参数称为“
    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的身份验证