รับรูปโปรไฟล์ผู้ใช้โดย Id


123

ตอนนี้ฉันทำงานเกี่ยวกับแอปพลิเคชันบนเว็บซึ่งส่วนใหญ่จะใช้ API กราฟของ facebook ฉันเก็บข้อมูลบางอย่างเกี่ยวกับผู้ใช้ซึ่งจริงๆแล้วข้อมูลสาธารณะที่เป็นไปได้ที่มีอยู่เช่นชื่อและรหัส ฉันรู้ด้วยว่ารูปโปรไฟล์เป็นส่วนหนึ่งของข้อมูลสาธารณะและฉันสงสัยว่าฉันจะได้รับลิงค์โดยตรงไปยังรูปโปรไฟล์ของผู้ใช้โดยใช้รหัสของเขาได้อย่างไร?

ขอบคุณล่วงหน้า


คำตอบ:


295

http://graph.facebook.com/ "+ facebookId +" / picture? type = square ตัวอย่างเช่น: http://graph.facebook.com/67563683055/picture?type=square

นอกจากนี้ยังมีขนาดเพิ่มเติมนอกเหนือจาก "สี่เหลี่ยมจัตุรัส" ดูเอกสาร


31
สำหรับใครก็ตามที่ต้องการลิงก์ไปยังเอกสาร: developers.facebook.com/docs/graph-api/reference/user/picture
Frankie Jarrett

33
ควรดูเอกสารเพราะมีตัวเลือกอื่น ๆ ด้วย ตัวอย่างเช่นถ้าคุณต้องการที่มีขนาดใหญ่, ภาพตาราง (ตั้งแต่เริ่มต้นเป็นตารางเล็ก) https://graph.facebook.com/{facebookId}/picture?type=large&width=720&height=720คุณต้องใช้
sudo

2
มีวิธีเพียงแค่ค้นหา url ของภาพที่ไม่ใช่ภาพเองหรือไม่? ต้องการอัปโหลดภาพในส่วนหน้าไม่ผ่านเซิร์ฟเวอร์ถ้าเป็นไปได้
Alexander Mills

1
หวังว่านี่จะช่วยให้ใครบางคนช่วยเพิ่มขั้นตอนในการค้นหา ID โปรไฟล์ของพวกเขา - findmyfbid.com
jarmerson

3
ใช้การเปลี่ยนเส้นทาง = 0 เพื่อรับคำอธิบาย JSON (รวม url) แทนภาพตัวเอง
Ilya Denisov

123

คุณสามารถใช้ URL ต่อไปนี้เพื่อรับภาพโปรไฟล์ขนาดต่างๆ โปรดตรวจสอบว่าได้เพิ่ม Facebook id ใน url แล้ว

รูปภาพขนาดใหญ่ https://graph.facebook.com/ {facebookId} / picture? type = large

รูปภาพขนาดกลาง https://graph.facebook.com/ {facebookId} / picture? type = normal

รูปภาพขนาดเล็ก https://graph.facebook.com/ {facebookId} / picture? type = small

ภาพสี่เหลี่ยม https://graph.facebook.com/ {facebookId} / picture? type = square


2
นี่คือวิธีที่ฉันสามารถค้นพบ FacebookId ของตัวเอง: developers.facebook.com/tools/explorer/…
Ryan

39

เพื่อให้ได้ภาพที่มีขนาดใหญ่ที่สุด

https://graph.facebook.com/{userID}?fields=picture.width(720).height(720) 

หรือสิ่งอื่นที่คุณต้องการตามขนาด จากประสบการณ์ type = large ไม่ใช่ผลลัพธ์ที่ใหญ่ที่สุดที่คุณจะได้รับ


1
ยังสามารถส่งผ่าน: graph.facebook.com {userID}? fields = picture.type (ขนาดใหญ่) สิ่งนี้มีประโยชน์เมื่อคุณมีสิ่งนี้ String url = " graph.facebook.com/me?fields=id,name,email , picture.type (ขนาดใหญ่) ตามที่กล่าวไว้ในคำตอบอื่น ๆ คุณสามารถแทนที่ขนาดใหญ่ด้วยขนาดปกติเล็กสี่เหลี่ยม ...
yajnesh

ไม่จำเป็นต้องมีโทเค็นการเข้าถึง (ในปัจจุบัน) หรือไม่?
Bernoulli IT


13

นี่คือตัวอักษรบนหน้าของเอกสาร API กราฟ

  • /OBJECT_ID/picture ส่งคืนการเปลี่ยนเส้นทางไปยังรูปภาพของวัตถุ (ในกรณีนี้คือผู้ใช้)
  • /OBJECT_ID/?fields=picture ส่งคืน URL ของรูปภาพ

ตัวอย่าง:

<img src="https://graph.facebook.com/4/picture"/> ใช้ HTTP 301 เปลี่ยนเส้นทางไปยังรูปโปรไฟล์ของ Zuck

https://graph.facebook.com/4?fields=picture ส่งคืน URL เอง


1
อนิจจามันไม่ได้อยู่ในหน้าแรกของเอกสาร Graph API อีกต่อไปตอนนี้อยู่ที่นี่: developers.facebook.com/docs/graph-api/using-graph-api
Igy

3
ไม่มันไม่ได้อยู่ในส่วนหน้าของเอกสาร Graph API คุณควรหลีกเลี่ยงคำสั่ง จำกัด เวลาใน SO คุณรู้ไหม.. วันนั้นเปลี่ยนไปค่อนข้างเร็ว ...
Gianluca Ghettini

และแดกดันคำตอบของคุณมีประโยชน์มากกว่าด้วยข้อมูลที่เกี่ยวข้องมากกว่าหน้ากราฟ api อยู่ดี :-)
Simon_Weaver

6

ที่นี่ api นี้ช่วยให้คุณได้รับภาพโปรไฟล์ fb, google และ twitter ได้อย่างง่ายดาย

https://www.avatars.io/

เป็น API ที่ส่งคืนรูปโปรไฟล์เมื่อกำหนดชื่อผู้ใช้สำหรับเครือข่ายโซเชียลต่างๆเช่น Twitter, Facebook, Instagram และ gravatar มีไลบรารีสำหรับ iOS, Android, Ruby, Node, PHP, Python และ JavaScript


1
ที่ยอดเยี่ยมจริงๆ! เพียงเพราะ SO ชอบที่จะอธิบายรายละเอียดเพิ่มเติมเล็กน้อย เป็น API ที่ส่งคืนรูปโปรไฟล์เมื่อตั้งชื่อผู้ใช้สำหรับเครือข่ายโซเชียลต่างๆเช่น Twitter, Facebook, Instagram และ gravatar มีไลบรารีสำหรับ iOS, Android, Ruby, Node, PHP, Python และ JavaScript ซอฟต์แวร์ที่ยอดเยี่ยม มันสามารถพบได้บน GitHub
Ari Cooper-Davis

3

คุณสามารถรับได้โดยใช้ url นี้: คุณจะได้รับภาพ HD (ขนาดสูงสุด)

https://graph.facebook.com/{userID}?fields=picture.width(720).height(720)&redirect=false

อย่าลืม เปลี่ยนเส้นทาง = เท็จมิฉะนั้นจะส่งคืนข้อผิดพลาด


2

ใช้ url เป็น: https: //graph.facebook.com/ user_id / picture? type = square ใน src ของแท็ก img ชนิดอาจมีขนาดเล็กใหญ่


2

คุณสามารถใช้ AngularJs สำหรับสิ่งนี้คุณสมบัติการผูกข้อมูลสองทางจะได้รับโซลูชันโดยใช้ความพยายามขั้นต่ำและรหัสน้อยลง

<div> <input type="text" name="" ng-model="fbid"><br/> <img src="https://graph.facebook.com/{{fbid}}/picture?type=normal"> </div>

ฉันหวังว่านี่จะตอบคำถามของคุณหมายเหตุ: คุณสามารถใช้ไลบรารีอื่นได้เช่นกัน


1

ผ่านJavascript SDK (v2.12 - เมษายน 2017)คุณจะได้รับรายละเอียดของคำขอรูปภาพด้วยวิธีนี้:

FB.api("/" + uid + "/picture?redirect=0", function (response) {
  console.log(response);

  // prints the following:
  //data: {
  //  height: 50
  //  is_silhouette: false
  //  url: "https://lookaside.facebook.com/platform/profilepic/?asid=…&height=50&width=50&ext=…&hash…"
  //  width: 50
  //}

  if (response && !response.error) {
    // change the src attribute of img elements
    [...document.getElementsByClassName('fb-user-img')].forEach(
      i => i.src = response.data.url
    );

    // OR redirect to the URL above
    location.assign(response.data.url);
  }
});

สำหรับการตอบสนอง JSON พารามิเตอร์ที่redirectมี0 (ศูนย์) เป็นค่ามีความสำคัญเนื่องจากคำขอเปลี่ยนเส้นทางไปยังรูปภาพโดยค่าเริ่มต้น คุณยังสามารถเพิ่มพารามิเตอร์อื่น ๆ ใน URL เดียวกันได้ ตัวอย่าง:

  • "/" + uid + "/picture?redirect=0&width=100&height=100": ภาพขนาด 100x100 จะถูกส่งคืน
  • "/" + uid + "/picture?redirect=0&type=large": ส่งคืนรูปภาพขนาด 200x200 พิมพ์ค่าที่เป็นไปได้อื่น ๆ ได้แก่ : ขนาดเล็ก , ปกติ , อัลบั้มและตาราง

1

เพียงทำตาม URL ด้านล่าง

https://graph.facebook.com/facebook_user_id/picture?type=square

ประเภทอาจเป็นเรื่องปกติเล็กกลางใหญ่ หรือสี่เหลี่ยมจัตุรัส (f คุณต้องการได้ภาพสี่เหลี่ยมจัตุรัสขนาดสี่เหลี่ยม จำกัด ไว้ที่ 50x50)


2
หากคุณต้องการได้ภาพสี่เหลี่ยมจัตุรัสขนาดสี่เหลี่ยม จำกัด ไว้ที่ 50x50
Rahul Gupta

ติดตามรายละเอียดเพิ่มเติมได้ที่ Facebook Graph API developers.facebook.com/docs/graph-api/reference/v3.2/user/…
Rahul Gupta

1

ตาม Facebook API เวอร์ชัน 3.2 ล่าสุดสำหรับผู้ใช้คุณสามารถใช้วิธีการทั่วไปนี้ในการรับรูปโปรไฟล์คือhttps://graph.facebook.com/v3.2/{user-id}/picture?type=squareคุณสามารถ เอกสารสำหรับการเข้าชมรูปภาพของผู้ใช้ที่นี่ ค่าที่เป็นไปได้สำหรับพารามิเตอร์ type ใน URL อาจมีขนาดเล็กปกติอัลบั้มใหญ่สี่เหลี่ยมจัตุรัส

สำหรับกลุ่มและเพจรูปโปรไฟล์ไม่สามารถใช้ได้โดยตรง คุณต้องได้รับโดยใช้โทเค็นการเข้าถึง สำหรับกลุ่มคุณต้องใช้ User Access Token และสำหรับ Pages คุณสามารถใช้ได้ทั้ง User Access Token และ Page Access Token

คุณสามารถรับรูปภาพโปรไฟล์ของกลุ่มหรือเพจโดยใช้ URL ทั่วไป: https://graph.facebook.com/v3.2/{user-id}/picture?access_token={access-token}&type=square

ฉันหวังว่านี่จะเป็นประโยชน์สำหรับผู้ที่กำลังมองหารูปภาพโปรไฟล์ของเพจหรือกลุ่ม


สำหรับหน้าเว็บส่วนใหญ่ฉันได้รับรูปโปรไฟล์ของเพจโดยไม่มีโทเค็นการเข้าถึง แต่สำหรับบางเพจจะส่งคืนรูปเครื่องหมายคำถามเป็นการตอบกลับในรูปแบบด้านล่าง {"data": {"is_silhouette": true, "url": " static.xx.fbcdn.net/rsrc.php/v3/y6/r/_xS7LcbxKS4.gif "}} มีเงื่อนงำอะไรไหม
xyz

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.