2010-09-01 77 views
0

我有一個應用程序在服務器上運行,使用流api偵聽各種tweets,然後偶爾發送推文。這使用舊的Twitter認證系統很好,但使用OAuth有點複雜。永久twitter oauth使用jtwitter和SignpostClient

我可以成功啓動應用程序,並且我的瀏覽器打開Twitter的OAuth頁面。如果我輸入PIN碼,應用程序運行良好,但我需要能夠無人值守地重新啓動應用程序。 Twitter的OAuth常見問題解答http://dev.twitter.com/pages/oauth_faq表示令牌永不過期,所以我想要在每次應用程序啓動時重新使用授權令牌。

我該怎麼做?還是有另一種方法來授權一次?

回答

1

我會回答我自己的問題,因爲解決方案非常簡單。

如本頁所述http://dev.twitter.com/pages/oauth_single_token如果您使用單用戶用例構建應用程序,則可以從Twitter上的應用程序控制面板檢索永久訪問令牌和訪問令牌機密。在「應用程序詳細信息」頁面中,單擊我的訪問令牌鏈接。

通過OAuthSignPostClient類閱讀中,我注意到,默認jtwitter實現使用下面的方法簽名:

public OAuthSignpostClient(String consumerKey, String consumerSecret, 
String callbackUrl) 

但它也可以使用名爲:

public OAuthSignpostClient(String consumerKey, String consumerSecret, 
      String accessToken, String accessTokenSecret) 

所以我的客戶端應用程序代碼中有改成:

OAuthSignpostClient client = new OAuthSignpostClient(MY_OAUTH_KEY, 
MY_OAUTH_SECRET, "oob"); 

發送至:

OAuthSignpostClient client = new OAuthSignpostClient(MY_OAUTH_KEY, 
MY_OAUTH_SECRET, MY_ACCESS_TOKEN, MY_ACCESS_TOKEN_SECRET); 

而且一切都很好。