0

我见过很多 Facebook 应用程序会自动上传照片并发布。

C# .NET

JsonObject jasonObj = CreateAlbum(accessToken);

UploadPhoto(jo["id"].toString(""), accessToken, filename);

 public JsonObject CreateAlbum(string accessToken)
        {
            FacebookClient facebookClient = new FacebookClient(accessToken);
            Dictionary<string, object> albumParameters = new Dictionary<string, object>();
            albumParameters.Add("message", "My Album message");
            albumParameters.Add("name", "Album Name");
            JsonObject resul = facebookClient.Post("/me/albums", albumParameters) as JsonObject;
            return resul;
        }

    public void UploadPhoto(string AlbumId, string accessToken, string FullImagePath)
    {
        byte[] photo = File.ReadAllBytes(FullImagePath);

        FacebookApp app = new FacebookApp();
        dynamic parameters = new ExpandoObject();
        parameters.access_token = accessToken;
        parameters.message = "This is a test photo of a monkey that has been uploaded " +
                             "by the Facebook C# SDK (http://facebooksdk.codeplex.com)" +
                             "using the Graph API";
        var mediaObject = new FacebookMediaObject
        {
            FileName = "top.jpg",
            ContentType = "image/jpeg",
        };
        mediaObject.SetValue(photo);
        parameters.source = mediaObject;

        dynamic result = app.Api(String.Format("/{0}/photos", AlbumId), parameters, HttpMethod.Post);
    }

但那张照片并没有在时间轴上发布。

您想将这些照片添加到您的相册吗?下面的照片是从另一个应用程序上传的,您需要批准它们。

这是 Facebook 的政策吗?还是我的错?

4

2 回答 2

2

public_stream在 user1027092 中的答案不是真正的许可 - 在没有特定用户批准每张照片的情况下上传到相册权限user_photos

一个重要的例外是,如果用户在安装您的应用程序时选择了比您尝试上传到的相册上的隐私设置更严格的隐私设置 - 在这种情况下,用户仍然需要手动批准照片,因为如果您可以上传到更显眼的相册,他们之前选择的应用内容的最大可见度将不会得到尊重

于 2012-11-28T06:57:32.227 回答
1

1) Facebook:在页面开发者应用程序中编辑权限https://developers.facebook.com/apps/xxxxxxxxxxxx/permissions - 扩展权限:public_stream、read_stream

2) C#:在链接重定向中添加 scope = "publish_stream,read_stream,user_photos" 3) 示例:https ://www.facebook.com/dialog/oauth?client_id= {0}&scope={1}&redirect_uri=http:/ /www.facebook.com/connect/login_success.html&response_type=token

用第 2 行中的字符串替换范围

于 2012-11-28T02:39:43.790 回答