2014-07-24 20 views
6

Tôi cần truy xuất giới tính từ người dùng Facebook từ hồ sơ công khai của mình thông qua Facebook Graph API.API biểu đồ Facebook - Cách nhận giới tính từ hồ sơ công khai

Rất tiếc, không phải lúc nào cũng hoạt động. Xem các ví dụ:

làm việc: https://graph.facebook.com/1423993568

{ 
    "id": "1423993568", 
    "gender": "male", 
    ... 
} 

không làm việc: https://graph.facebook.com/10152133878666403

{ 
    "error": { 
     "message": "Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api", 
     "type": "GraphMethodException", 
     "code": 100 
    } 
} 

Nhưng khi tôi mở user id trực tiếp thông qua web, nó hoạt động, và tôi thậm chí có thể nhìn thấy giới tính. (Đi tới "Giới thiệu/Liên hệ và Thông tin Cơ bản") Tôi đã đăng nhập bằng tài khoản cá nhân của mình chứ không phải là bạn của người dùng này! http://www.facebook.com/10152133878666403

Sự cố là gì? Có vấn đề gì với yêu cầu hoặc tính năng bảo mật từ Facebook không?

UPDATE:

tôi có thể làm một cách giải quyết như thế này, nhưng chỉ khi tôi đăng nhập với trình duyệt của tôi:

Lấy app_scoped_user_id và nhận được tên người dùng Facebook từ URL chuyển hướng, khi mở yêu cầu này:

http://www.facebook.com/app_scoped_user_id/10152133878666403 
    --> https://www.facebook.com/shiffoni 
    --> https://graph.facebook.com/shiffoni 

lợi nhuận:

{ 
    "id": "669926402", 
    "first_name": "Shiffoni", 
    "gender": "female", 
    "last_name": "Leonhardt", 
    "locale": "de_DE", 
    "name": "Shiffoni Leonhardt", 
    "username": "shiffoni" 
} 

Bất kỳ ý tưởng nào khác để nhận giới tính, userId hoặc biệt hiệu thực?

+1

10152133878666403 là một id người dùng có phạm vi ứng dụng. Bạn cần phải cung cấp mã thông báo truy cập của người dùng cho cùng một ứng dụng như ứng dụng nhận id người dùng phạm vi ứng dụng đó – WizKid

+5

Chỉ vì một cái gì đó công khai trên Facebook.com không có nghĩa là công khai cho tất cả ứng dụng – WizKid

+0

Ok, hiểu. - Có cách nào để tôi có thể dịch id người dùng phạm vi ứng dụng sang id người dùng thông thường không? - Tôi cần những quyền nào để truy xuất thông tin công khai? –

Trả lời

5

Như đã được trả lời trong nhận xét của một nhân viên Facebook, nó chỉ đơn giản là không thể, bởi vì nó không được hỗ trợ để có được 'giới tính' hoặc id người dùng Facebook thực sự.

cách giải quyết có thể:

  • sử dụng api giới (ví dụ genderize.io) để lấy giới dựa trên tên đầu tiên.
  • loại bỏ thông tin giới tính khỏi Facebook (cần phải là đăng nhập qua web) từ người dùng về trang.
+0

Xin chào, bạn có thể để lại twitter của mình hoặc bất kỳ địa chỉ nào khác cho PM bạn không? Cảm ơn! – knuku

2

Cách tốt nhất để kiểm tra bằng cách sử dụng biểu đồ facebook api dưới develoers.facebook.com => tools & support => Graph API Explorer.

$fb = new Facebook(array(
'appId' => $app_id, 
    'secret' => $app_secret, 
    'cookie' => true 
)); 

$fbuser=$fb->api('/me/friends?fields=id,name,gender'); 

nó sẽ cung cấp một mảng của tất cả bạn bè của bạn với tên & giới tính, bạn có thể lặp qua và đặt một điều kiện bên trong vòng lặp để tách con đực & bạn bè nữ.

Hy vọng nó giúp

để biết thêm đọc bài viết này

Getting Facebook Friends with Gender

Các vấn đề liên quan