我正在使用C#.NET在Facebook上创建“页面标签”应用程序。在此应用程序中,用户可以将图片上传到应用程序所属页面的订阅源。用户应该在图片中自动标记。
我已经有了将图片上传到墙上的代码,但是每次尝试让用户获得标记似乎都不起作用。 这是我目前用于将图片上传到我的墙上的代码。
var parameters = new Dictionary<string, object>();
parameters.Add("url", "<url to image>");
parameters.Add("message", "Message to go with the picture");
parameters.Add("access_token", "<access_token of page this application belongs to>");
FacebookClient client = new FacebookClient("AccessToken");
client.Post("https://graph.facebook.com/page_ID/photos", parameters);
但是如何在此图片中标记用户?我假设用户应该登录我的应用程序,然后我应该以某种方式使用'用户ID'。但我所做的尝试似乎根本不起作用。
我尝试过的一件事就是通过在代码中直接插入我自己的'uid'来标记自己,如下所示:
parameters.Add("tags", new object[] {
new Dictionary<string, object>(){
{"tag_uid", "<My own user id>"},
{"x", "0"},
{"y", "0"},
}
});
我也试过这样的东西:
var tags = new[] {
new { tag_uid = "<My own user id>", x = 0, y = 0 }
};
parameters.Add("tags", tags);
甚至
var tags = new[] {
new { tag_text = "testing", x = 0, y = 0 }
};
parameters.Add("tags", tags);
如果我转到'Graph API Explorer'并在那里试用,那么我也会收到一条错误消息:
{ “错误”:{ “message”:“发生了未知错误。”, “type”:“OAuthException”, “代码”:1 } }
但所有这些只会导致错误:“OAuthException - #1”发生了未知错误。“如果我注释掉标记部分,一切似乎都很完美。那么如何获取用户ID,然后在我上传的图片中标记他?
答案 0 :(得分:1)
要添加标记,您需要使用标记端点进行单独调用。这是文档。 https://developers.facebook.com/docs/graph-api/reference/photo/tags/
向下滚动以查看示例通话。在PHP中它是这样的:
* make the API call */ $response = $facebook->api( "/{photo-id}/tags", "POST", array ( 'tags' => '[{\'tag_text\': \'Testing\'}]', ) ); /* handle the result */