【问题标题】:Facebook upload multiple photos to album at onceFacebook一次将多张照片上传到相册
【发布时间】:2014-03-03 22:51:57
【问题描述】:

我正在开发 WinService,它将文件系统上特定文件夹中的照片上传到 Facebook 页面(要上传,我已经制作了 Facebook 应用程序并将其连接到 Facebook 页面),其中文件夹名称是将用于 Facebook 的名称专辑。 所以,首先我创建专辑,这很好,我有专辑 ID。

我尝试了几种将照片上传到 Facebook 相册的方法,但每次上传的每张照片都会生成一个弹出通知。 方式1:

FacebookClient fb = new FacebookClient(token.Trim());
//Perform upload
var imageStream = File.OpenRead(photo.Location);
fb.PostCompleted += (o, e) =>
{
    imageStream.Dispose();
    if (e.Cancelled || e.Error != null)
    {
        error = e.Error == null ? "canceled" : e.Error.Message;
    }
};
dynamic res = fb.PostTaskAsync("/" + fbAlbumID + "/photos", new
{
    message = String.Empty,
    file = new FacebookMediaStream
    {
        ContentType = "image/jpg",
        FileName = Path.GetFileName(photo.Location)
    }.SetValue(imageStream)
});
res.Wait();
var dictionary = (IDictionary<string, object>)res.Result;

方式2:

dynamic result = fb.Batch(
    new FacebookBatchParameter(HttpMethod.Post, "/" + albumId + "/photos",
        new Dictionary<string, object>
        {
            {"message", "picture 1 msg"},
            {
                "pic1",
                new FacebookMediaObject {ContentType = "image/jpeg", FileName = "p4.jpg"}.SetValue(
                    File.ReadAllBytes(
                        file1path))
            }
        }),
    new FacebookBatchParameter(HttpMethod.Post, "/" + albumId + "/photos",
        new Dictionary<string, object>
        {
            {"message", "picture 1 msg"},
            {
                "pic2",
                new FacebookMediaObject {ContentType = "image/jpeg", FileName = "p4.jpg"}.SetValue(
                    File.ReadAllBytes(
                       file2path))
            }
        }
    )
);

但对于每一种方式,每张上传的照片都会为喜欢该页面的人生成弹出通知。 他们,“喜欢的人”,将其视为垃圾邮件。

如何实现一张相册上传10张照片并有单次通知?

请指教,谢谢。

【问题讨论】:

  • 这条消息是从哪里来的?我不明白...
  • 哪条消息?我已经描述了我的问题。
  • "...但是每次上传的每张照片都会生成一个弹出通知..."
  • 它显示在左下角作为弹出窗口和通知部分。喜欢的人将其视为垃圾邮件,他们不希望收到每张图片的通知。如果他们有一个通知“10 张照片上传到相册新年”就可以了。 dropbox.com/s/6whtto9e4bzaovg/img.jpg的示例

标签: c# facebook facebook-graph-api


【解决方案1】:

我见过的唯一方法是使用 Open Graph 功能(单个提要项或单个通知)完成此操作。基础图形 API 没有简单的方法来做到这一点,这真的很糟糕。无论您尝试批量请求(方式 2)、附加照片 url 还是附加原始图像数据,您都会收到多个提要项目和多个通知。 Twitter 的 API 通过强制您上传多张照片并取回 media_ids 来实现您想要的,然后您可以将其附加到推文中。

https://developers.facebook.com/docs/opengraph/using-actions/v2.2#photos。我知道设置 Open Graph 可能不是您想要做的,但它似乎确实是本文发布时的唯一方法。 Open Graph 无论如何都要求您使用用户级访问令牌,而您正在使用页面级令牌。所以,鉴于你的要求,这似乎还不可能。

【讨论】:

    猜你喜欢
    • 2012-09-20
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 2014-09-29
    • 1970-01-01
    相关资源
    最近更新 更多