使用facebook c# sdk在批处理请求中将多张照片上传到Facebook相册

本文关键字:照片 相册 Facebook 张照片 sdk facebook 批处理 请求 使用 | 更新日期: 2023-09-27 18:36:10

我正在编写一个应用程序,将多张照片上传到特定的Facebook相册。当前代码剂量不使用批处理请求上传照片。

我的问题是:如何在批处理请求中上传多张照片?

当前代码:

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 c# sdk在批处理请求中将多张照片上传到Facebook相册

这个链接对我有用:这里

示例代码:

dynamic result = fb.Batch(
            new FacebookBatchParameter(HttpMethod.Post, "/me/photos", new Dictionary<string, object> { { "message", "picture 1 msg" }, { "pic1", new FacebookMediaObject { ContentType = "image/jpeg", FileName = "Tulips.jpg" }.SetValue(File.ReadAllBytes(@"C:'Users'Public'Pictures'Sample Pictures'Tulips.jpg")) } }),
            new FacebookBatchParameter(HttpMethod.Post, "/me/photos", new Dictionary<string, object> { { "message", "picture 2 msg" }, { "pic2", new FacebookMediaObject { ContentType = "image/jpeg", FileName = "Penguins.jpg" }.SetValue(File.ReadAllBytes(@"C:'Users'Public'Pictures'Sample Pictures'Penguins.jpg")) } })
          );