2012-05-12 66 views
2

我想允许用户使用他们的Twitter帐户注册并登录到我的Java Web应用程序。我唯一需要从他们的Twitter帐户中获得的信息是他们的姓名(或者如果没有提供姓名,则使用Twitter用户名)以及他们的电子邮件地址。使用Twitter从Java Web应用程序注册和验证

我遇到了scribe OAuth库,该库提供an example如何使用它从控制台应用程序使用Twitter进行身份验证。但是,我无法弄清楚如何适应这个Web应用程序。我不认为我可以用这个例子:“是”,因为它包含如下代码:

Scanner in = new Scanner(System.in); 

不会从web应用程序的工作。另外,一旦身份验证完成,我无法看到如何检索用户的姓名和电子邮件地址。

如果有人能够指出我如何使用Java Web应用程序对Twitter进行身份验证(使用OAuth)并检索用户名和电子邮件的完整示例,那就太棒了。这个例子不一定要用抄写员,尽管我自己写的代码越少越好。

+0

我不知道该库,但有一个访问令牌后API调用获取用户详细信息是[verify_credentials](https://dev.twitter.com/docs/api/1/get/account/ verify_credentials)。虽然没有包含用户电子邮件。我猜你不能从Twitter上获得这个信息 - 大概他们希望你发推文给他们! – Rup

+0

扫描仪 - 该示例正在使用它来接受授权回调的文本输入。相反,您应该指定回调网址 - 请参阅Facebook示例 - 它将从Twitter身份验证机制接收此值。 – Rup

+0

我建议你在注册时询问电子邮件地址。如果您可以从Twitter API获取电子邮件地址,那么您可以填写他们的电子邮件地址字段,但您仍应允许用户更改它。有些人为不同的服务使用不同的电子邮件地址例如,我可以将[email protected]作为我的twitter地址,但在您的服务中,我希望它是[email protected],以便进行过滤 – palto

回答

1

您需要在您的应用程序中拥有一个接收verifier的端点。

如果你去OOB方式,比如上例中,客户端将不得不手动执行调用您的端点:

curl http://example.com?verifier=123456 

如果你使用callback这样的:

Service service = new ServiceBuilder().callback("http://example.com"). //rest of the config 

Twiiter将自行执行呼叫并将用户浏览器重定向到您的端点。