我正在构建一个Web应用程序,我正在使用OAuth来提供Facebook身份验证。我已经成功生成了access_token,每次用户退出/退回时,我都会匹配他们的access_token来查找他们的帐户。这非常有效。
此外,我正在构建一个Windows Phone 7配套应用程序。我使用Facebook SDK获得了相同的身份验证过程,但返回的access_token是不同的。这意味着我无法匹配该帐户。
由于注销/登录我的Web应用程序似乎反复生成相同的access_token,我很困惑为什么移动应用程序会生成不同的访问令牌。
有人能告诉我,我期待的行为是否正确?我已经浏览了Facebook文档,但找不到任何相关内容。也许OAuth在这里做的不正确。
答案 0 :(得分:1)
每次登录时,代码都会返回不同的access_code值。我需要添加一个名为“response_type”的新字段,其值为“code”。然后,我将我重定向到登录页面并使用正确的令牌进行响应,然后我交换了访问代码。
要生成URL,这是代码:
Facebook.FacebookOAuthClient client = new Facebook.FacebookOAuthClient();
client.AppId = "285539721457932";
client.AppSecret = "65233641cf71e6fa9fef5ecd7d802ebf";
client.RedirectUri = new Uri("http://www.imaybelate.com/Account/FacebookCallback");
url = client.GetLoginUrl(new Dictionary<string, object>()
{
{ "display", "wap" },
{ "response_type", "code" },
{ "permissions","offline_access"}
}).ToString();