2011-04-20 150 views
1

我可以使用此代码与Twitter连接,当我将其作为Java程序运行时,我可以获取PIN。我可以找到这个引脚,但是我如何在BlackBerry模拟器中执行此操作?将Java SE代码移植到黑莓

import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 

import oauth.signpost.OAuth; 
import oauth.signpost.OAuthConsumer; 
import oauth.signpost.OAuthProvider; 
import oauth.signpost.basic.DefaultOAuthConsumer; 
import oauth.signpost.basic.DefaultOAuthProvider; 
import oauth.signpost.signature.SignatureMethod; 

public class Main { 

    public static void main(String[] args) throws Exception { 

     OAuthConsumer consumer = new DefaultOAuthConsumer(
       "my consumerkey", 
       "mysecret key here", 
       SignatureMethod.HMAC_SHA1); 

     OAuthProvider provider = new DefaultOAuthProvider(consumer, 
       "http://twitter.com/oauth/request_token", 
       "http://twitter.com/oauth/access_token", 
       "http://twitter.com/oauth/authorize"); 

     System.out.println("Fetching request token from Twitter..."); 

     // we do not support callbacks, thus pass OOB 
     String authUrl = provider.retrieveRequestToken(OAuth.OUT_OF_BAND); 

     System.out.println("Request token: " + consumer.getToken()); 
     System.out.println("Token secret: " + consumer.getTokenSecret()); 

     System.out.println("Now visit:\n" + authUrl 
       + "\n... and grant this app authorization"); 
     System.out.println("Enter the PIN code and hit ENTER when you're done:"); 

     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     String pin = br.readLine(); 

     System.out.println("Fetching access token from Twitter..."); 

     provider.retrieveAccessToken(pin); 

     System.out.println("Access token: " + consumer.getToken()); 
     System.out.println("Token secret: " + consumer.getTokenSecret()); 

     URL url = new URL("http://twitter.com/statuses/mentions.xml"); 
     HttpURLConnection request = (HttpURLConnection) url.openConnection(); 

     consumer.sign(request); 

     System.out.println("Sending request to Twitter..."); 
     request.connect(); 

     System.out.println("Response: " + request.getResponseCode() + " " 
       + request.getResponseMessage()); 
    } 
} 
+1

你有什么问题吗? – 2011-04-20 22:40:48

+0

我不知道如何使用这段代码在模拟器中打开页面。当我在java中这样做时,我必须从控制台复制链接,并且必须粘贴我在浏览器中的控制台上的Url,然后浏览器将我带到请求的URL并在那里给我的用户名和密码并获得并将其粘贴到控制台上,并获得访问令牌和令牌的秘密,但如何在黑莓模拟器中执行类似的过程?而我必须在上面的代码中做出什么变化,它应该在黑莓模拟器中打开,我不知道??? plz帮助... – Sagar 2011-04-21 05:26:20

回答

1

为了打开你要调用的黑莓浏览器:

Browser.getDefaultSession().displayPage("myUrl"); 

请记住,你的应用程序必须为了做到这一点签署。另外,我不知道这些OAuth类是否适用于Blackberry。