2011-06-04 76 views
0

我使用Java servlets实现了一个Facebook应用程序。我想知道如何通过认证后从Facebook发送的HTTP请求中读取访问令牌。从URL获取Facebook access_token

被Facebook发送到我的请求是这样的:http://myserver/app/servlet#access_token=3108888%7C2.AQByEGAdEk7D5hs3.3600.130400.1-10005014%7C3XTVE&expires_in=4317

我怎样才能读取访问令牌(这是一个片段,而不是一个参数)在我的Java servlet?如果这是一个参数,我会做:

request.getParameter("access_token); 
+0

解决!我找到了一种方法让Facebook用“真实”http参数而不是片段向我发送请求。 – Mirko 2011-06-04 15:01:53

+0

如果你也描述了解决方案,它会很好。 – biziclop 2011-07-28 12:40:56

+0

我有同样的问题。你是如何解决它的? -Joni – 2011-07-28 12:39:14

回答

0

让Facebook发送包含在的access_token HTTP参数的要求,需要改变resoponse_type参数要求。它有两种类型codetoken。如果我们通过tokenaccess_code将在url fragment,如果我们通过token它将是请求参数与密钥为code

参见:Constructing a URL to the OAuth Dialog

对于服务器的access_code例如侧处理在某些servlet中,需要发送request_type作为code,否则只能通过javascript在客户端处理它。