C # Facebook SDK รับรูปภาพ รูปภาพ การตอบกลับของ Facebook ที่ไม่รู้จัก

ฉันใช้ C# Facebook SDK https://github.com/facebook-csharp-sdk/facebook-csharp-sdk ดาวน์โหลดจาก Nuget ในแอปพลิเคชัน MVC ของฉันเพื่อรับอัลบั้มสาธารณะจากเพจ

คำขอทั้งหมดทำงานได้ดี ยกเว้นคำขอเดียว เมื่อฉันพยายามขอปกอัลบั้ม

var PictureUrl = "1713516952246958/picture";
var PictureResult = FB.Get(PictureUrl);

มันแสดงข้อยกเว้น "การตอบกลับของ Facebook ที่ไม่รู้จัก"

คำขอเดียวกันใช้งานได้ที่นี่

https://developers.facebook.com/tools/explorer?method=GET&path=1713516952246958%2Fpicture&version=v2.7

มีความคิดเห็นอะไรบ้างที่ควรเป็นปัญหา?


person Michael Samteladze    schedule 16.08.2016    source แหล่งที่มา


คำตอบ (2)


ฉันมีปัญหาเดียวกันทุกประการ และมันก็ทำให้ฉันแทบบ้า

ในที่สุดฉันก็คิดว่าจะตรวจสอบเอกสารประกอบ: https://developers.facebook.com/docs/graph-api/reference/user/picture/

โดยพื้นฐานแล้วมันจะบอกว่า: By default this edge will return a 302 redirect to the picture image. To get access to the data about the picture, please include **redirect=false** in your query.

ดังนั้นข้อผิดพลาด "การตอบกลับบน Facebook ที่ไม่รู้จัก" ที่คุณได้รับนั้นเป็นเพราะแทนที่จะส่งคืน JSON ที่ถูกต้อง กลับกลายเป็นการเปลี่ยนเส้นทาง 302 กลับคืนมา ซึ่งแน่นอนว่าไม่สามารถแยกวิเคราะห์ได้อย่างถูกต้อง

ดังนั้นลองเปลี่ยนรหัสของคุณเป็น:

var PictureUrl = "1713516952246958/picture?redirect=false";
var PictureResult = FB.Get(PictureUrl);

และคุณควรจะหวาน!

person Sam Barber    schedule 19.10.2016
comment
ขอบคุณมาก! - person user943369; 09.02.2017

ฉันสร้างคำขอกับ WebClient ดังนี้:

        WebClient p = new WebClient();
        p.QueryString.Add("access_token", accessToken);

        string responseData = p.DownloadString("https://graph.facebook.com/v2.7/me/picture");

และการตอบกลับกลับมาพร้อมกับสตริงข้อมูลที่น่าอึดอัดซึ่งมี \0001 หลายตัวและคำว่า "Photoshop 3.0" อยู่ในนั้น

ดูเหมือนว่า C# FaceBook SDK จะไม่รู้วิธีประมวลผลการตอบสนองต่อเส้นทาง API การตอบสนองดูเหมือนจะเป็นข้อมูลไบนารีในบางรูปแบบจาก Photoshop เมื่อใดก็ตามที่ฉันลองคำขอและตรวจสอบกับบุรุษไปรษณีย์หรือเบราว์เซอร์ มันแค่แสดงรูปภาพเป็นส่วนเนื้อหาของคำขอ มันจะไม่แสดงการเข้ารหัส base64 ใดๆ อย่างที่ฉันคาดไว้ นี่คือภาพหน้าจอขนาดเล็กของข้อมูลแปลกๆ

อาจเป็นคุณลักษณะที่ยังไม่ได้ใช้งานซึ่งจำเป็นต้องดำเนินการใน SDK

person Derrick Granowski    schedule 04.09.2016