【问题标题】:facebook upload photo as company pagefacebook上传照片作为公司页面
【发布时间】:2013-11-24 22:44:11
【问题描述】:

我有一个关于使用 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);
            }
        }

【问题讨论】:

  • 您在发帖请求中使用的是用户 ID 还是页面 ID?

标签: c# facebook-graph-api


【解决方案1】:

为了代表页面使用 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# 代码中使用它来上传图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多