簡體   English   中英

C#和Facebook API

[英]C# & Facebook API

我目前正在使用Facebook API和C#。

我要做的是將圖像上傳到活動。

我嘗試了兩種方法,但似乎都沒有用。 有人可以看看。

方法1

        Dictionary<string, string> args = new Dictionary<string, string>();
        string source = "@test.jpg";
        string relpath = "/1234456789/photos";
        args.Add("message", "sssssss");
        args.Add("access_token", api.AccessToken);
        args.Add("source", source);
        api.Post(relpath, args);

方法2

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(String.Format("http://graph.facebook.com/1234456789/photos")); 
        request.ContentType = "multipart/form-data"; 
        request.Method = "POST";

        string path = HttpUtility.UrlEncode("test.jpg");
        request.BeginGetRequestStream(ar => 
        { 
            using (StreamWriter writer = new StreamWriter((ar.AsyncState as HttpWebRequest).EndGetRequestStream(ar))) 
            { 
                writer.Write("{0}={1}&", "message", HttpUtility.UrlEncode("Test")); 
                writer.Write("{0}=@{1}&", "source", path);
                writer.Write("{0}={1}", "access_token",
                    api.AccessToken); 
            } 
        }, request);

方法3

        WebClient client = new WebClient();

        byte[] responseBinary = client.UploadFile("http://localhost:61689/Widgets/test2.aspx", "POST", @"C:\test.jpg");

        string response = Encoding.UTF8.GetString(responseBinary);

        Dictionary<string, string> args = new Dictionary<string, string>();

        string relpath = "https://graph.facebook.com/me/picture";
        args.Add("message", "sssssss");
        args.Add("access_token", GetAccessToken(code));
        args.Add("source", response); 

        api.Post(relpath, args);

在方法3中,我正在嘗試創建響應並寫入。 我收到了400個不好的請求。

圖像'test.jpg'目前位於我的網站根目錄中,與調用它的頁面相同。

嘿羅伯特,不確定這是否是導致它的原因,但是在示例1中看起來你試圖在JPG名稱上使用字符串文字,但如果是這樣,@符號需要在引號之外...

@“早上好”//一個字符串文字

看起來您只是傳遞要上傳的照片的文件名。 您是否使用可從磁盤讀取實際照片內容的庫? 如果沒有,您需要自己完成並將內容寫入請求。

將照片內容寫入請求的格式取決於您要寫入的API的期望(多部分等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM