Twitter4j AccesToken与JavaFX浏览器

时间:2012-09-04 18:07:39

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

我想使用带有javafx的嵌入式浏览器来验证用户身份。我可以获得twitter给我的PIN(字符串),但是当我尝试创建AccesToken时,它无法正确创建它。 (我无法获取我的令牌或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提供的代码示例,据我所知,我正在做同样的事情,只有我得到的字符串没有通过键盘输入,我直接从浏览器中获取... < / p>

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

基于实例#7

1 个答案:

答案 0 :(得分:0)

Twitter API以图片格式返回图钉。它不提供字符串或int中的引脚。那个。您可以提示用户手动输入图钉。