0

我有一个关于使用 facebook graph API (OAuth) 上传照片的问题。

我在我的帐户下创建了一个公司页面。

当我使用我的帐户将照片上传到我的公司页面时,我的用户名显示为上传页面的用户。

无论如何我可以上传页面以显示公司名称吗?

下面是我目前实现的代码。

        string access_token = FacebookSystem.RetrieveToken(UserEmail, AppID);

        string query = string.Empty;

        if (string.IsNullOrEmpty(PageID) || PageID.Equals("default", StringComparison.InvariantCultureIgnoreCase))
        {
            query = "me/photos";  
        }
        else
        {
            query = string.Format("{0}/photos", PageID); 
        }

        var fb = new FacebookClient(access_token);

        try
        {
            dynamic parameters = new ExpandoObject();

            foreach (string i in args.FileList)
            {
                parameters.message = args.Comment;
                parameters.source = new FacebookMediaObject
                {
                    ContentType = "image",
                    FileName = Path.GetFileName(i)
                }.SetValue(File.ReadAllBytes(i));

                fb.Post(query, parameters);
            }
        }
4

1 回答 1

0

为了代表页面使用 Graph API,您需要获取页面访问令牌 - 请参阅此处了解更多详细信息:https ://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens

  1. 验证用户并请求 manage_pages 权限
  2. 从 (1) 获取用户管理的页面列表:https ://graph.facebook.com/me/accounts?access_token=USER_ACCESS_TOKEN
  3. 解析列表并获取令牌 - 并使用它发布到提要。

您将在图形 API 资源管理器中执行 (1) - 您将获得用户令牌。然后将该令牌插入 (2) 中的 URL - 您将看到所有页面和相应的令牌。拿一个你需要的并在你的 C# 代码中使用它来上传图像。

于 2013-11-24T14:44:11.353 回答