2013-01-03 37 views
10

Tôi gọiFacebook graph api trả về không có email

https://graph.facebook.com/<user_id>/?access_token=<valid_token> 

hoặc chỉ

https://graph.facebook.com/me/?access_token=<valid_token> 

và nhận được trở lại đối tượng json không chứa email người dùng chính mà tôi cần. Tôi thiết lập quyền email cho ứng dụng và không có hiệu lực. Điều gì có thể sai?

+1

Cậu gỡ lỗi các thẻ truy cập để xác minh nó có sự cho phép email? –

+1

Kiểm tra mã thông báo truy cập của bạn cho dù nó _really_ có quyền 'email' ở đây không: https://developers.facebook.com/tools/debug – CBroe

+0

Không. Làm thế nào tôi có thể làm điều đó? – heximal

Trả lời

7

Bạn có nhớ để yêu cầu sự cho phép email trong yêu cầu đăng nhập? Bạn làm điều này bằng cách thêm tham số phạm vi như thế này trong các yêu cầu đăng nhập (& phạm vi = email):

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_REDIRECT_URI&state=SOME_ARBITRARY_BUT_UNIQUE_STRING&scope=email 

Facebook API reference

+0

Cảm ơn, đây chính xác là tôi đã quên làm – heximal

7

Bạn có thể không có các quyền email trong mã thông báo truy cập của mình.

Bạn có thể xác minh nó với Acess Token Debugger

+1

Cảm ơn một lần nữa, không có hành vi phạm tội, nhưng tôi chấp nhận Andreas trả lời đúng vì nó là lý do thực sự. Nhưng lời khuyên của bạn rất hữu ích trong việc phát triển nguồn gốc của vấn đề. – heximal

+0

Không có vấn đề gì cả, bạn nên luôn chấp nhận câu trả lời tốt nhất cho mình. –

3

Tôi tin rằng câu hỏi của bạn là, ngay cả sau khi cấp quyền truy cập email, bạn có không thể nhận thông tin email thông qua API đồ thị. Trong các phiên bản mới hơn, bạn cần chuyển thông số trường tới API để nhận thêm thông tin như email. Theo mặc định, nó chỉ cung cấp id và tên trong phản hồi. Hãy tìm một mẫu dưới đây về cách để có được thông tin khác từ đồ thị:

https://graph.facebook.com/me?fields=id,email,first_name,gender,last_name,link,locale,name,timezone,updated_time,verified&access_token=<value of access_token>&debug=all 

Hope this helps.

0

Có thể email chưa được xác minh trong facebook. Trong trường hợp này, facebook không làm cho nó có sẵn thông qua API. Đảm bảo mã của bạn xử lý trường hợp này.

1

Kể từ khi phát hành phiên bản API 2.5 bạn có thể nhận email sử dụng như thế này: https://graph.facebook.com/v2.5/me?fields=id,name,email

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