好吧,这个话题似乎有点混乱,我正在努力得到一个明确的答案,所以这是我的问题......
我正在使用服务器端流程来获取我的 Web 应用程序的访问令牌,我之前使用了 offline_access,现在正在折旧,因此我需要一种在以下情况下刷新令牌的方法:
1) 用户更改 FB 密码 2) 令牌自然过期
我的应用程序将结果发布到用户 FB 墙,因此我们的服务器需要自动完成刷新(没有 cookie 或 OAuth 对话框)
我想我可以尝试使用这里描述的新端点
http://developers.facebook.com/roadmap/offline-access-removal/
,使用以下代码(Java):
public static String refreshFBAccessToken(String existingAccessToken)
throws Exception{
//Currently not working
String refreshUrl = "https://graph.facebook.com/oauth/access_token?
client_id="+FacebookApp.appId+"
&client_secret="+FacebookApp.appSecret+"
&grant_type=fb_exchange_token
&fb_exchange_token="+existingAccessToken;
URL url = new URL(refreshUrl);
URI uri = new URI(url.getProtocol(), url.getHost(), url.getPath(),
url.getQuery(), null);
String result = readURL(uri.toURL());
String[] resultSplited = result.split("&");
return resultSplited[0].split("=")[1];
}
但这似乎不起作用(我得到一个响应 400),当我重新阅读文档时,似乎这个端点仅用于使用客户端流获得的令牌......
那么服务器端流程呢......?
有人可以告诉我上述方法是否正确还是有其他方法?
非常感谢