【发布时间】:2015-08-31 03:50:31
【问题描述】:
我正在尝试使用以下代码从 facebook 获取 OAuth 令牌:
let applicationId = "12345"
let applicationSecret = "12345"
let tokenBuilder = new StringBuilder()
tokenBuilder.Append("https://graph.facebook.com/v2.3/oauth/access_token?")
tokenBuilder.Append("client_id=")
tokenBuilder.Append(applicationId)
tokenBuilder.Append("&redirect_uri=")
tokenBuilder.Append("https://www.facebook.com/connect/login_success.html")
tokenBuilder.Append("&client_secret=")
tokenBuilder.Append(applicationSecret)
let tokenUri = tokenBuilder.ToString()
let tokenClient = new WebClient()
let tokenResponse = tokenClient.UploadString(tokenUri,String.Empty)
当我运行它时,我得到了这个:
System.Net.WebException:远程服务器返回错误:(400) 错误的请求。
谁能告诉我我做错了什么?我可以为应用程序进行大量配置,我猜是这样的:
【问题讨论】:
-
大胆猜测:您不需要对重定向 URL 进行 URL 编码吗?
-
不走运。 UrlEncoding responseUri 仍然失败。
-
您是否有一个可行的示例(即使使用其他语言/平台),以便我们进行比较?
-
呃,这是问题的一部分。有一个 Facebook.NET SDK,但它假定 WinPhone/Win8/Metro 应用程序和 Win10 更新是通用应用程序。我尝试使用 F# (PCL) 都没有任何运气,所以我现在只能使用 webClient 和 POSTS。主要的sdk在这里:facebooksdk.net
-
@JamieDixon:我相信您还应该在您的请求中添加 OAuth2 流授权类型设置,例如:
tokenBuilder.Append("&grant_type=client_credentials")
标签: facebook facebook-graph-api f#