C# 如何使用Api或Sdk在Facebook用户源上发布图像
你好,我正在开发一个C#控制台应用程序,它必须向Facebook发布消息和图像。我已经有了第一部分的工作,现在身份验证令牌不是问题。但是我在让我的程序上传任何类型的媒体时遇到了很多麻烦 如果有人能在这方面帮助我,我将不胜感激。在过去几天的实习中,我一直在学习Facebook Api和Sdk,但我并没有真正取得进展 以下是我目前掌握的代码: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
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第一个代码的结果可以在第一个编辑的链接中看到。该代码用于发布一个链接,该链接使用和图像作为“按钮”。但我真正想要的是,这是我想要的第一次编辑的链接,这只是一个已经发布在提要中的图像。