asp.net - 使用 asp.net 将评论发布到 facebook 墙上

标签 asp.net facebook facebook-graph-api

我有一个已注册为 Facebook 应用程序的网站 - 我现在有一个应用程序 ID。

我的网站是 ASP.net C#。当用户单击一个按钮时,我希望它将预定义的消息发布到他们的墙上。我期待 Facebook 向用户显示登录对话框 - 他们登录并授予发布权限以发布我的网站应用程序。

有没有人有任何示例代码可以执行此操作?我想我需要使用图形 API,但我见过的所有示例都使用 PHP——我对此一无所知。我正在寻找一个使用 Java Script(我几乎一无所知)或 C#(漂亮!)的示例。

* 更新 *

我已成功获取 access_token。现在我通过 Facebook C# API 进行调用以发布到墙上。我收到错误消息:

(#803) 您请求的某些别名不存在:profile_id

我单步检查了 api 代码,发现它正在尝试发布到以下地址:{https://graph.facebook.com/PROFILE_ID/feed},发布数据是:message=Sample+message+from+c%23+sdk&access_token=199209316768200|2.1avFTZuDGR4HJ7jPFeaO3Q__.3600.1302897600.1-100000242760733|R4DkNDf4JCb6B2F64n5TSQwBq vM

我很确定我的 token 应该有效。在请求访问 token 之前,我在应用授权请求中请求了 publish_stream,如下所示:

Response.Redirect ("https://www.facebook.com/dialog/oauth?client_id=" + myAppId + "&redirect_uri=" + myURL + "&scope=publish_stream");

真正发出请求的sdk代码如下:

private string MakeRequest(Uri url, HttpVerb httpVerb,
                                   Dictionary<string, string> args)
        { 
        if (args != null && args.Keys.Count > 0 && httpVerb == HttpVerb.GET)
        {
            url = new Uri(url.ToString() + EncodeDictionary(args, true));
        }

        HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;

        request.Method = httpVerb.ToString();

        if (httpVerb == HttpVerb.POST)
        {
            string postData = EncodeDictionary(args, false);

            ASCIIEncoding encoding = new ASCIIEncoding();
            byte[] postDataBytes = encoding.GetBytes(postData);

            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = postDataBytes.Length;

            Stream requestStream = request.GetRequestStream();
            requestStream.Write(postDataBytes, 0, postDataBytes.Length);
            requestStream.Close();
        }

        try
        {
            using (HttpWebResponse response 
                    = request.GetResponse() as HttpWebResponse)
            {
                StreamReader reader 
                    = new StreamReader(response.GetResponseStream());

                return reader.ReadToEnd();
            }
        }

谁能看出我做错了什么?

非常感谢,

罗布。

最佳答案

首先,你需要照顾Authentication .您需要创建一个应用程序,并使用 OAuth 来获取访问 token 。这一切都在身份验证指南中进行了描述。

要向用户的墙上张贴内容,请查看 Graph API在发布下。

作为开始,您可以使用 Facebook's C# SDK

关于asp.net - 使用 asp.net 将评论发布到 facebook 墙上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5597501/

相关文章:

c# - 找不到 WebClient

node.js - Facebook Messenger bot 未按顺序发送消息

php - 在 laravel 5 facebook graph api 中找不到类 Facebook

iphone - Facebook iOS SDK : Login to Facebook without always ask for permissions for the application

asp.net - 为什么 Image.GetThumbnailImage 在 IIS6 和 IIS7.5 上的工作方式不同?

asp.net - 如何为 select 语句 where 列 IN 编写查询

html - 改变 <tr> 中控件相对于其他控件的位置

android - 重新询问 Facebook 中拒绝的权限不起作用

javascript - Facebook 事件跟踪 Squarespace 上的按钮点击

asp.net - 访问 Facebook 页面中登录的用户 ID?