【发布时间】:2013-11-21 17:07:15
【问题描述】:
场景:
- 用户已完成 OAuth 流程,并已授予我们的应用 publish_actions、publish_stream、user_friends 和 user_photos 权限。
- 虽然我们从登录用户那里获得了用户令牌,但我们已经检索并保留了用户的 Facebook id
- 此外,虽然我们拥有用户令牌,但我们创建了一个相册,以便稍后将照片发布到 Facebook 相册 ID 并保留
- 注意:由于遗留原因,我们没有保留用户令牌
-
稍后,我们会尝试将照片发布到之前使用以下代码创建的相册中:
FacebookClient client = null; Dictionary<string, object> parameters = null; string path; FacebookMediaObject media = null; client = new FacebookClient(); client.AppId = "{our app id}"; client.AppSecret = "{our app secret}"; media = new FacebookMediaObject(); media.ContentType = "image/jpg"; media.FileName = "AnyAllContactTypesProblem.jpg"; media.SetValue(File.ReadAllBytes(Server.MapPath(".") + "\\" + media.FileName)); parameters = new Dictionary<string,object>(); parameters.Add("name", "Test Image 1"); parameters.Add("source", media); path = "/" + "{album id}" + "/photos"; dynamic result = client.Post(path, parameters);
POST 操作导致以下异常:
(OAuthException - #102) A user access token is required to request this resource.
Facebook 文档指出,从应用 ID 和应用秘密派生的“应用令牌”可用作代表某人发布照片的访问令牌,只要已向其应用提供了 publish_stream 权限在我们的例子中。
我们是否遗漏了上述代码中所需的内容,或者 Facebook 是否更改了发布照片所需的权限?
提前致谢。
【问题讨论】:
标签: c# facebook facebook-graph-api facebook-c#-sdk