将照片发布到Facebook页面c#sdk仅对发布照片的用户可见

时间:2012-11-13 22:46:10

标签: facebook-c#-sdk

美好的一天,

将照片发布到网页时遇到一个奇怪的问题,我可以使用预定的日期和时间发布带有评论的照片而不会出现问题。当我首先进入页面墙时,我看到活动日志中的照片等待发布。一旦时间到期,照片就会出现在页面墙上,我可以看到并评论照片。如果我找到其他人或通过非Facebook用户访问该页面,则该图片不存在。我也尝试以另一个页面管理员身份登录,结果相同。

    var accessToken = Session["AccessToken"].ToString();
    var client = new FacebookClient(accessToken);
    dynamic result = client.Get("me", new { fields = "first_name,last_name,email,id" });

    string diplaymessage = string.Empty;
    diplaymessage = "Message";

    dynamic accounts = client.Get("me/accounts", new { limit = "25", offset = "0" });

    foreach (dynamic account in accounts.data) {
      if (account.category != "Application") {
        var pageclient = new FacebookClient(account.access_token);
        if (account.id == page.ID) {
          dynamic post = null;

          //if (product.Targeting != null) {
          dynamic parameters = new ExpandoObject();
          parameters.source = new FacebookMediaObject {
            ContentType = "image/" + product.Extension,
            FileName = path + filename
          }.SetValue(File.ReadAllBytes(path + filename));
          parameters.message = diplaymessage;
          if (product.DateScheduled < DateTime.Now) {
            parameters.scheduled_publish_time = Facebook.DateTimeConvertor.ToUnixTime(DateTime.Now.AddMinutes(15));
          } else {
            parameters.scheduled_publish_time = Facebook.DateTimeConvertor.ToUnixTime(product.DateScheduled);
          }
          parameters.published = false;
          try {
            post = pageclient.Post("/" + account.id + "/photos", parameters);

          } catch (Exception ex) {
            //error
          }
        }
      }
    }

是否需要传递其他参数才能使其“公开”,即使通过脸书检查照片的权限时它们似乎都是公开的?

2 个答案:

答案 0 :(得分:2)

终于找到了解决方案。没有沙盒模式的概念&#39;此外,您需要将应用程序设置为&#34; live&#34;,这样可以确保其发布的任何帖子也公开,请参阅下面的屏幕截图。

Application Settings > Status & Review >

答案 1 :(得分:0)

禁用Facebook应用程序的沙盒模式。这将有助于向其他用户展示帖子,而不仅仅是开发人员。