【问题标题】:Twitter4j AccesToken with JavaFX Browser带有 JavaFX 浏览器的 Twitter4j AccesToken
【发布时间】:2012-08-29 10:36:59
【问题描述】:

我想使用带有 javafx 的嵌入式浏览器对用户进行身份验证。我可以获得 twitter 给我的 PIN(字符串),但是当我尝试创建 AccesToken 时,它没有正确创建它。 (我无法获取我的 token 或 tokenSecret,两者均为 null)。

这是我的代码:

public static void main(String[] args)
    {
    Application.launch(args);
    }

@Override
public void start(Stage primaryStage) throws Exception
    {
    primaryStage.setTitle("WebView test");

    WebView browser = new WebView();

    engine = browser.getEngine();

    twitter = new TwitterFactory().getInstance();
    twitter.setOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);

    requestToken = twitter.getOAuthRequestToken();

    String url = requestToken.getAuthorizationURL();


    engine.load(url);

    engine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>()
        {

            public void changed(ObservableValue ov, State oldState, State newState)
                {
                if (newState==State.SUCCEEDED && engine.getLocation().equals("https://api.twitter.com/oauth/authorize"))
                    {
                     String pin = engine.getDocument().getDocumentElement().getElementsByTagName("code").item(0).getTextContent();
                     printAccesToken(pin);
                    }
                }

        });

    StackPane sp = new StackPane();
    sp.getChildren().add(browser);

    Scene root = new Scene(sp);

    primaryStage.setScene(root);
    primaryStage.show();
    }



private void printAccesToken(String pin)
    {
    AccessToken accessToken = null;

    try
        {
        accessToken = twitter.getOAuthAccessToken(requestToken, pin);
        }
    catch (TwitterException e)
        {
        e.printStackTrace();
        }
    System.out.println(accessToken.getToken());

    }

/*------------------------------------------------------------------*\
|*                          Attributs Private                       *|
\*------------------------------------------------------------------*/
private WebEngine engine;
private Twitter twitter;
private RequestToken requestToken;
private static final String CONSUMER_KEY = "xxx";
private static final String CONSUMER_SECRET = "xxx";

我基于 twitter4j 提供的代码示例,据我所知,我正在做完全相同的事情,只是我得到的字符串不是通过键盘输入的,我直接从浏览器中得到它......

http://twitter4j.org/en/code-examples.html

基于示例 #7

【问题讨论】:

    标签: java twitter oauth-2.0 javafx-2 twitter4j


    【解决方案1】:

    Twitter API 以图像格式返回 pin。它不提供字符串或整数中的引脚。那它的。您可以提示用户手动输入密码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      • 2013-04-18
      • 2015-05-16
      相关资源
      最近更新 更多