WEB开发网
开发学院软件开发Java 通过 OAuth 访问社会网络 Web 站点,第 1 部分: 构... 阅读

通过 OAuth 访问社会网络 Web 站点,第 1 部分: 构建支持 OAuth 的桌面 Twitter 客户端

 2010-04-12 00:00:00 来源:WEB开发网   
核心提示: Description:使用 OAuth 的桌面 Twitter 客户端Application Website:在此处输入您的应用程序主页Application Type:客户端 - 我们将要开发桌面客户端Default Access type:读 & 写 - 我们想要授予用户写入权限Use T

Description:使用 OAuth 的桌面 Twitter 客户端

Application Website:在此处输入您的应用程序主页

Application Type:客户端 - 我们将要开发桌面客户端

Default Access type:读 & 写 - 我们想要授予用户写入权限

Use Twitter for login:否 - 我们不打算使用 Twitter 进行身份验证

注意,您应该将应用程序类型选择为 Client 而不是 Browser。(在本系列的第 2 部分,我将介绍基于 Web 的示例。)此外,切记授予读 & 写权限,否则您的应用程序将只能从 Twitter 读取内容。

注册成功后,您将获得一个使用者密钥、使用者机密(secret)和 3 个 URL(请求令牌 URL、访问令牌 URL 和授权 URL)。现在就可以开始实际使用了。

开发和测试 MyTtDesktopClient

我将使用 Twitter4J,它是 TwitterAPI 的一个开源 Java 库。Twitter4J 封装了许多函数,所以我们可以关注逻辑,无需接触 Twitter 的低级别 API 调用。Twitter4J 的另一个好处是它支持 OAuth,这将明显减少我们的开发工作。我们将从 清单 1 中的类 myttdesktopclient.OAuthTwitterClient 的 updateStatus(String status) 方法开始。 源代码可从下面的 下载 部分获得。不要忘记将使用者密钥和机密(记住,当注册客户端时,Twitter 会提供这些参数)放在 OAuthTwitterClient.java 的内部。

清单 1. 类 myttdesktopclient.OAuthTwitterClient 的 updateStatus(String status) 方法

public void updateStatus(String status) throws TwitterException, IOException { 
 Twitter twitter = new Twitter(); 
 twitter.setOAuthConsumer(consumerKey, consumerSecret); 
 RequestToken requestToken = twitter.getOAuthRequestToken(); 
 AccessToken accessToken = null; 
 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
 while (accessToken == null) { 
 System.out.println("Open the following URL and grant access to 
        your account:"); 
 System.out.println(requestToken.getAuthorizationURL()); 
 // Copy the authorisation URL in your browser 
 // http://twitter.com/oauth/authorize?oauth_token=xxxxxxxxxxxxxxxxxxxxxxxx 
 // Log in Twitter, grant access 
 // Get a PIN returned, e.g., 738805 
 // Notice you can use HttpClient to do the job above 
 System.out.println("Copy the PIN displayed in your browser, then 
        hit ENTER: "); 
 String pin = br.readLine(); 
 accessToken = twitter.getOAuthAccessToken(requestToken, pin); 
 } 
 
 // Persist the access token for future reference 
 int userId = twitter.verifyCredentials().getId(); 
 storeAccessToken(userId, accessToken); 
 Status twitterStatus = twitter.updateStatus(status); 
 System.out.println("Successfully updated the status for user with ID " 
  + userId + " to [" + twitterStatus.getText() + "]."); 
} 

上一页  1 2 3 4 5 6  下一页

Tags:通过 OAuth 访问

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接