2011-01-24 27 views
6

Tôi hiện đang sử dụng API Facebook và C#.C# & Facebook API

Điều tôi đang cố gắng tải lên hình ảnh là một sự kiện.

Tôi đã thử hai phương pháp, nhưng dường như không hoạt động. Ai đó có thể xin hãy xem.

Phương pháp 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); 

Phương pháp 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}[email protected]{1}&", "source", path); 
       writer.Write("{0}={1}", "access_token", 
        api.AccessToken); 
      } 
     }, request); 

Phương pháp 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); 

Trong phương pháp 3 tôi đang cố gắng để tạo ra phản ứng và viết điều đó. Tôi nhận được 400 yêu cầu xấu.

Hình ảnh 'test.jpg' hiện đang nằm trong thư mục gốc của trang web của tôi, giống như trang gọi nó.

+1

Khi bạn nói nó không hoạt động, bạn có gặp bất kỳ lỗi nào không? –

+0

400 yêu cầu xấu cho phương pháp 1, phương pháp 2 chỉ chạy qua nhưng tôi không nhận được bất kỳ hình ảnh nào trên facebook. Hi vọng điêu nay co ich. – Robert

+0

Câu hỏi sau đây có thể trợ giúp: http://stackoverflow.com/questions/4210746/c-facebook-graph-how-to-upload-to-album-id. –

Trả lời

1

Hey Robert, không chắc chắn đây có phải là nguyên nhân gây ra nó hay không, nhưng trong ví dụ 1 có vẻ như bạn đang cố gắng sử dụng chuỗi ký tự trên tên JPG, nhưng nếu vậy, biểu tượng @ cần nằm ngoài dấu ngoặc kép ...

@ "chào buổi sáng" // một chuỗi chữ

0

Dường như bạn chỉ đi qua các tên tập tin của ảnh để tải lên. Bạn đang sử dụng một thư viện mà sẽ đọc nội dung ảnh thực tế từ đĩa? Nếu không, bạn sẽ cần tự làm điều đó và ghi nội dung vào yêu cầu.

Định dạng để ghi nội dung ảnh vào yêu cầu sẽ tùy thuộc vào sự mong đợi của API bạn đang viết (đa phần, v.v.).

+0

Thats phương pháp 2 đang cố gắng làm. – Robert

+0

@Robert - Trong phương pháp 2, tôi không thấy nơi bạn đang thực sự viết nội dung tệp. Tôi thấy viết tên tập tin, nhưng không thực sự viết nội dung tập tin. –