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

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

 2010-04-12 00:00:00 来源:WEB开发网   
核心提示: 清单 2. MyTtDesktopClient 的输出OpenthefollowingURLandgrantaccesstoyouraccount:http://twitter.com/oauth/authorize?oauth_token=matzsp0Q8k5GfhX2DQoQaHEipBH

清单 2. MyTtDesktopClient 的输出

Open the following URL and grant access to your account: 
http://twitter.com/oauth/authorize?oauth_token=matzsp0Q8k5GfhX2DQoQaHEipBH3g3ieqzPg5QyYek 
Copy the PIN displayed in your browser, then hit ENTER: 
1944867 
Storing access token for 23741179...Done 
Successfully updated the status for user with ID 23741179 to [Studying OAuth]. 

图 4. 由 MyTtDesktopClient 更新的 Twitter 状态
通过 OAuth 访问社会网络 Web 站点,第 1 部分: 构建支持 OAuth 的桌面 Twitter 客户端

查看原图(大图)

注意,在 清单 1 中,在更新 Twitter 状态之前,通过调用 storeAccessToken 方法存储了访问令牌。这是因为目前 Twitter 的访问令牌还没有到期。所以在用户返回并使用我们的客户端时无需再次授权访问。这样就改善了用户体验。在本例中,用户的访问令牌以纯文本文件的形式存储,它还可以在将来重用。看一下源代码(可在 下载 部分获得)中的 storeAccessToken 和 loadAccessToken 方法。名为 updateStatus(int userId, String status) 的新更新方法使用了存储的访问令牌(参见 清单 3)。在 main 方法中,为行 tt.updateStatus("Studying OAuth"); 添加注释,并取消行 tt.updateStatus(23741179, "Studying OAuth again"); 的注释。使用您自己的 Twitter ID 替换 23741179。重新编译并运行代码,您就会发现,现在无需执行上述授权流程就可以更新自己的 Twitter 状态。

清单 3. 类 myttdesktopclient.OAuthTwitterClient 的 updateStatus(int userId, String status) 方法

public void updateStatus(int userId, String status) 
 throws TwitterException, IOException { 
 Twitter twitter = new Twitter(); 
 twitter.setOAuthConsumer(consumerKey, consumerSecret); 
 AccessToken accessToken = loadAccessToken(userId); 
 twitter.setOAuthAccessToken(accessToken); 
 Status twitterStatus = twitter.updateStatus(status); 
 System.out.println("Successfully updated the status for user with ID " 
  + userId + " to [" + twitterStatus.getText() + "]."); 
} 

结束语

在本系列的第一篇文章中,我介绍了 OAuth 协议。通过示例应用程序 MyTtDesktopClient,我们了解了使用 OAuth 的基本元素。这里的特别之处在于用户的服务提供商凭证(Twitter 用户名和密码)不会泄漏给使用者 MyTtDesktopClient。在本系列的第 2 部分,我将演示如何开发更实用的 Web 应用程序,以支持用户通过 OAuth 与 Twitter 进行通信。

本文示例源代码或素材下载

上一页  1 2 3 4 5 6 

Tags:通过 OAuth 访问

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