Facebook-上传并标记图片(通过C#SDK)

本文关键字:通过 C#SDK Facebook- | 更新日期: 2023-09-27 18:00:33

我正在使用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);

如果我去"图形API浏览器"并在那里尝试它,那么我也会得到一条错误消息:

{"错误":{"message":"发生未知错误。","type":"OAuthException","代码":1}}

但所有这些只会导致错误:"OAuthException-#1)发生了未知错误。"。如果我注释掉标记部分,一切似乎都很完美。那么,我如何获取用户ID,然后在我上传的图片中标记他呢?

Facebook-上传并标记图片(通过C#SDK)

要添加标记,需要使用标记端点进行单独调用。这是文件。https://developers.facebook.com/docs/graph-api/reference/photo/tags/

向下滚动查看示例调用。在php中,它是这样的:

*进行API调用*/$response=$facebook->api("/{照片id}/标签","帖子",阵列('tags'=>'[{'''tag_text''':'''测试'''}]',));/*处理结果*/