C# 如何使用Api或Sdk在Facebook用户源上发布图像

C# 如何使用Api或Sdk在Facebook用户源上发布图像,c#,facebook,facebook-graph-api,facebook-c#-sdk,C#,Facebook,Facebook Graph Api,Facebook C# Sdk,你好,我正在开发一个C#控制台应用程序,它必须向Facebook发布消息和图像。我已经有了第一部分的工作,现在身份验证令牌不是问题。但是我在让我的程序上传任何类型的媒体时遇到了很多麻烦 如果有人能在这方面帮助我,我将不胜感激。在过去几天的实习中,我一直在学习Facebook Api和Sdk,但我并没有真正取得进展 以下是我目前掌握的代码: using Facebook; using System; using System.Dynamic; namespace ApiHandlerFacebo

你好,我正在开发一个C#控制台应用程序,它必须向Facebook发布消息和图像。我已经有了第一部分的工作,现在身份验证令牌不是问题。但是我在让我的程序上传任何类型的媒体时遇到了很多麻烦

如果有人能在这方面帮助我,我将不胜感激。在过去几天的实习中,我一直在学习Facebook Api和Sdk,但我并没有真正取得进展

以下是我目前掌握的代码:

using Facebook;
using System;
using System.Dynamic;

namespace ApiHandlerFacebook
{
    class Program
    {
        static void Main(string[] args)
        {
            PostMessage();
            Console.WriteLine("\nPress the Enter key to exit the application...\n");
            Console.ReadLine();
            Console.WriteLine("Terminating the application...");
        }

        private static void PostMessage()
        {
            //Fill the brackets with a access token to test the application
            //You can easily get a temporary token using the Graph Api Explorer from Facebook: https://developers.facebook.com/tools/explorer/
            //But do make sure you have the "publish_actions" permission otherwise it wont work.
            string access_token = "ACCESS_TOKEN_HERE";

            dynamic parameters = new ExpandoObject();
            parameters.message = "Test Message";
            parameters.subject = "test 123";
            parameters.link = "https://youtu.be/dQw4w9WgXcQ";
            parameters.picture = "http://b.vimeocdn.com/ps/588/58832_300.jpg";
            parameters.name = "Article Title";
            parameters.caption = "Caption for the link";
            parameters.description = "Longer description of the link";
            parameters.privacy = new
            {
                value = "SELF"
            };

            var client = new FacebookClient(access_token);
            client.Post("/me/feed", parameters);
            Console.WriteLine("Posted");
        }
    }
}
编辑1: 更清楚地说:

编辑2: 我仍然有一些我正在试验的代码来发布图像,但它不起作用,但也许你们中的一个人知道如何让它起作用:

FacebookMediaObject media = new FacebookMediaObject
{
    FileName = "TestImage.jpg",
    ContentType = "image/jpeg"
};

byte[] img = File.ReadAllBytes("http://static.mnium.org/images/contenu/actus/Overwatch/Ocarine/D.va/d_va__by_guweiz.jpg");
media.SetValue(img);

parameters.source = media;

您可以先将client.Post结果设置为一个变量,然后在Post之后查看它,看看会返回什么。var result=client.Post(“/me/feed”,参数);这可能是一个权限问题…我不这么认为,我没有收到关于权限的错误消息,可以肯定的是,我在我的令牌中添加了更多可能需要的权限,但这并没有改变任何东西,所以我不知道。client.post方法的结果是什么?你看了吗?@pmeyer第一个代码的结果可以在第一个编辑的链接中看到。该代码用于发布一个链接,该链接使用和图像作为“按钮”。但我真正想要的是显示在这是我想要的第一次编辑链接,这只是一个已经发布在提要中的图像。您可以先将client.Post结果设置为一个变量,然后在发布后查看它,看看会返回什么。var result=client.Post(“/me/feed”,参数);这可能是一个权限问题…我不这么认为,我没有收到关于权限的错误消息,可以肯定的是,我在我的令牌中添加了更多可能需要的权限,但这并没有改变任何东西,所以我不知道。client.post方法的结果是什么?你看了吗?@pmeyer第一个代码的结果可以在第一个编辑的链接中看到。该代码用于发布一个链接,该链接使用和图像作为“按钮”。但我真正想要的是,这是我想要的第一次编辑的链接,这只是一个已经发布在提要中的图像。