可以更新现有One中的照片标签

时间:2015-07-15 13:57:30

标签: c# facebook facebook-graph-api facebook-c#-sdk

我的问题是可以添加现有标签(意味着现有的phtos)。现在我可以使用此代码在新上传中标记好友

private const string ExtendedPermissions = "user_about_me,user_photos,publish_stream";

[HttpPost]
[FacebookAuthorize(Permissions = ExtendedPermissions, LoginUrl = "/Home/LogOn?ReturnUrl=~/Home")]
public ActionResult MensagemPost(string message)
{
    var fb = new FacebookWebClient();
    dynamic me = fb.Get("me");

    string friendId_1 = // get the first one friend id
    string friendId_2 = // get the second one friend id

    var tags = new[] 
    { 
        new { tag_uid = friendId_1, x = 20, y = 20 },
        new { tag_uid = friendId_2, x = 40, y = 40 },
        new { tag_uid = (string)me.id, x = 60, y = 60 }
    };

    dynamic parameters = new ExpandoObject();
    parameters.message = message;
    parameters.tags = tags;
    parameters.url = "http://1.bp.blogspot.com/-evheT51sfeM/TlO_wZ8YDqI/AAAAAAAAA8I/fjlg0G8AgMY/s1600/The-best-top-hd-desktop-naruto-shippuden-wallpaper-naruto-shippuden-wallpapers-hd-11.jpg";

    dynamic result = fb.Post("me/photos", parameters);

    return RedirectToAction("Index", new { success = true });
}

但我无法更新现有标签。

  

我的尝试是

var res = FbClient.Post("/4333418373210452/tags", PostInfo);
AccessToken = Properties.Settings.Default.FBAccessToken;
FacebookClient FbClient = new FacebookClient(AccessToken);
var PostInfo = new Dictionary<string, object>();
var tags = new[] { new { tag_uid = "870415313026255", tag_text = "Tag updated", x = 90, y = 110 } };
PostInfo.Add("tags", tags);
var result = FbClient.Post("/4333418373210452/tags", PostInfo);

此代码从facebook收到错误。错误说

  

(GraphMethodException - #100)不支持的帖子请求。请阅读   图表API文档在   https://developers.facebook.com/docs/graph-api

我尝试谷歌搜索,但直到现在都无法得到解决方案..任何人帮助我...你的评论也欢迎

Jagadeesh Govindaraj

1 个答案:

答案 0 :(得分:0)

  

找到了解决方案...之前我尝试按照我的朋友ID发布请求,但现在我改为 phtoID ..它的工作。

  AccessToken = Properties.Settings.Default.FBAccessToken;
    FacebookClient FbClient = new FacebookClient(AccessToken);
    var PostInfo = new Dictionary<string, object>();
    var tags = new[] { new { tag_uid = "870415313026255", tag_text = "Tag updated", x = 90, y = 110 } };
    PostInfo.Add("tags", tags);
    var result = FbClient.Post("/"Existing PhotoID"/tags", PostInfo);