gpt4 book ai didi

java - 在 appengine 中使用 twitter4j 的正确方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:43 25 4
gpt4 key购买 nike

我正在练习制作一个网络应用程序,该应用程序会尝试读取用户的 Twitter 个人资料、显示他/她的 friend 并显示他/她的照片。 Twitter4j 网站上的代码示例如下:

public static void main(String args[]) thrwos Exception{
Twitter twitter = new Twitter();
twitter.setOAuthConsumer("[consumer key]", "[consumer secret]");
RequestToken requestToken = twitter.getOAuthRequestToken();
AccessToken accessToken = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (null == accessToken) {
System.out.println("Open the following URL
and grant access to your account:");
System.out.println(requestToken.getAuthorizationURL());
System.out.print("Hit enter when it's done.[Enter]:");
br.readLine();
try{
accessToken = requestToken.getAccessToken();
} catch (TwitterException te) {
if(401 == te.getStatusCode()){
System.out.println("Unable to get the access token.");
}else{
te.printStackTrace();
}
}
}
}

我做的是在一个 servlet 中,我们将其命名为 IndexServlet 我有以下代码:

   Twitter twitter = new Twitter();
twitter.setOAuthConsumer("[consumer key]", "[consumer secret]");
RequestToken requestToken = twitter.getOAuthRequestToken();
String authUrl = requestToken.getAuthorizationURL()

然后我将 authUrl 传递给 jsp,以便用户可以单击它。那行得通很远,但在那之后我已经被困住了! :)

我不太确定在哪里设置回调 URL。我应该将它设置为同一个 servlet 吗?问题是我应该有相同的 twitter 和 requestToken 变量,就像第一个带有 main 方法的代码一样,所以我可以这样做:

accessToken = requestToken.getAccessToken();
Status status = twitter.updateStatus(some argument here);

但是将回调 url 设置为 IndexServlet 会调用设置 twitter 消费者的代码。我可能可以使用像

这样的标志绕过它
if (already setup) {
accessToken = requestToken.getAccessToken();
Status status = twitter.updateStatus(some argument here);
}

但后来我觉得那很乱。

我试过的是(使用第二个 servlet,它是回调 url)

  1. 我尝试将 twitter 和 requestToken 变量存储在 session ,这样我就可以在 Twitter 重定向到回调 URL 时访问它,但显然这是不允许的。

  2. 我还尝试将 Twitter 和请求 token 都保存到数据存储区,但后者不允许存储 RequestToken 类型。

显然所有的都失败了。想知道这样做的正确方法。谢谢! :)

最佳答案

我想出了一个在谷歌应用引擎中使用 Twitter4j + Oauth 的技巧。我写了关于它的博客here .

尽管此代码有效,但它可能不是使用 Twitter4j 和 Oauth 的正确方法(尽管它在 appengine 上有效)。它没有经过优化,绝对不是最好的方法,而且为了简洁起见,它实际上充满了不好的做法!在我真正的应用程序中,虽然我已经重构了那些代码味道。

另一件事,我还没有解决的是为什么 Twitter 的图标在重定向到回调 url 后出现。我打算尽快解决这个问题并优化方法。非常欢迎提出意见和建议!

关于java - 在 appengine 中使用 twitter4j 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1318840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com