facebook上传照片作为公司页面

时间:2013-11-06 23:17:11

标签: c# facebook-graph-api

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

1 个答案:

答案 0 :(得分:0)

为了代表网页使用图谱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. 解析列表并获取令牌 - 并使用它发布到Feed。
  4. 您将在图形API资源管理器中执行(1) - 您将获得用户令牌。然后将该令牌插入到(2)中的URL中 - 您将看到所有页面和相应的令牌。拿一个你需要的,并在你的C#代码中使用它来上传图像。