2010-08-03 62 views
22

Tôi đang cố gắng để có được danh sách sinh nhật bạn bè.Cách nhận danh sách sinh nhật của bạn bè bằng facebook api?

Nhưng cách tìm bằng cách sử dụng api của tôi tôi không biết.

+14

Nó có thể giúp bạn vượt qua và chấp nhận câu trả lời cho một số trong số 23 câu hỏi của bạn ... mọi người ở đây sẽ có nhiều khả năng giúp đỡ hơn nếu họ biết họ có thể có được một số đại diện cho ... –

+1

điều này có liên quan đến Android không? –

+5

ngôn ngữ nào? nền tảng gì? mã mẫu? thông báo lỗi? không có câu trả lời được chấp nhận .. điều này giống như một lớp học tổng thể về cách không sử dụng SO :) có thể muốn suy nghĩ qua cách bạn tiếp cận trang này .. – dmp

Trả lời

17

Lưu ý: Điều này không còn khả thi. Xem this answer.

Sử dụng API OpenGraph trong bất kỳ môi trường nào bạn sử dụng để truy xuất thông tin. Sinh nhật nằm trong đối tượng thông tin người dùng, xem tài liệu: http://developers.facebook.com/docs/reference/api/user

+6

Tôi sẽ rất hữu ích nếu bạn vui lòng cung cấp mã demo để truy cập danh sách sinh nhật với api này . Nếu có thể!!!!!!!!!!! –

+1

bạn có thể nhận sinh nhật bằng cách sử dụng biểu đồ api https://graph.facebook.com/me/friends?fields=id,name,birthday&access_token= đảm bảo bạn có quyền cho danh sách bạn bè và ngày sinh của bạn hoặc nó sẽ trả lại vô giá trị. – Underdog

6

Bạn phải sử dụng FQL để nhận danh sách sinh nhật của bạn bè.

FQL sẽ được (chỉ cần thay thế thẻ của bạn truy cập):

"https://api.facebook.com/method/fql.query?query=select tên, birthday_date từ người dùng nơi uid trong (chọn uid2 từ người bạn nơi uid1 = tôi()) & access_token = your_access_token "

20

Bạn cũng có thể sử dụng facebook api:

$friends_birthday = $facebook->api("/me/friends?fields=id,name,birthday"); 

bạn cũng phải có sự cho phép friends_birthday trong phạm vi ứng dụng của bạn

+3

Hãy lưu ý rằng ngày đó có liên quan đến ngôn ngữ của người dùng để có thể là dd/mm/yyy hoặc dd/mm/yyyy hoặc dd/mm hoặc mm/dd – ysrb

0

có được danh sách bạn bè đầy đủ với Graph api, lặp mảng dữ liệu json và sau đó kiểm tra cho ngày sinh nhật = ngày hôm nay .. đó là

6

Đây là liên kết cho Graph API Explorer

https://developers.facebook.com/tools/explorer/?method=GET&path=me đi vào liên kết và click vào Nhận truy cập TOCKEN bạn có thể có một cửa sổ pop-up cho chọn quyền và chọn thẻ truy cập của bạn. và tại phần nút chọn các trường bạn muốn (ví dụ chọn bạn bè và dưới dạng liên kết con trong bạn bè chọn ngày sinh) và GET truy vấn bằng cách nhấp vào SUBMIT thì bạn có thể có ngày sinh và id của bạn bè Dữ liệu Json.

0

bạn có thể nhận được danh sách bạn bè trong ios theo cách này:

- (IBAction)pickFriendsClick:(UIButton *)sender { 
    NSArray *permissions = [[NSArray alloc] initWithObjects: 
         @"user_birthday",@"friends_hometown", 
         @"friends_birthday",@"friends_location", 
         nil]; 
    [FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:YES completionHandler:nil]; 
    FBRequest *friendRequest = [FBRequest requestForGraphPath:@"me/friends?fields=name,picture,birthday,location,updated_time,email"]; 
    [ friendRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
    NSArray *data = [result objectForKey:@"data"]; 
    NSMutableArray *friends= [data mutableCopy]; 
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"updated_time" 
                    ascending:TRUE]; 
    [friends sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]]; 

    for (FBGraphObject<FBGraphUser> *friend in friends) { 
     NSLog(@"%@:%@", [friend name],[friend birthday]); 
    }}]; 
} 

Cảm ơn.

0

thử này, nó chỉ cần vài dòng

FBRequest * request = [FBRequest requestForGraphPath:@"me/friends? 
              fields=id,name,birthday&limit=5000"]; 

[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) 
{ 
    if(error == nil){ 

     NSLog(@"%@",result); 
    } 
}]; 
17

Kể từ v2.0 của API Graph, nó không phải càng tốt để có được ngày sinh nhật người bạn nữa. Bạn chỉ có thể nhận ngày sinh của người dùng được ủy quyền bằng cách sử dụng quyền cho phép user_birthday. Xem changelog để biết thêm thông tin: https://developers.facebook.com/docs/apps/changelog

Chỉ có một khả năng khác: Nếu bạn cho phép các ứng dụng với user_birthday, bạn có thể nhận sinh nhật của mình với các cuộc gọi sau đây: /friend-id?fields=birthday

Tất nhiên bạn cần phải ủy quyền cho người sử dụng với user_friends, để thực hiện công việc này. Và bạn cũng có thể lưu trữ ngày sinh của tất cả người dùng được ủy quyền và không lãng phí thêm cuộc gọi API trên đó.

+0

Tôi cũng nghĩ * bạn cũng cần 'user_friends'. – phwd

+0

tốt, bạn không nhận được bất kỳ bạn bè mà không có điều đó, vì vậy tôi nghĩ rằng sẽ được rõ ràng :) - nhưng tôi sẽ thêm nó, chỉ để được an toàn. nó có thể không được rõ ràng cho tất cả mọi người. – luschn

+2

Bạn biết các nhà phát triển Facebook .. rõ ràng là điều xa nhất – phwd

0

FB.api('me/friends?fields=id,name,birthday') không hoạt động kể từ ngày 09/12/2017.

Dưới đây là thông báo gỡ lỗi từ công cụ trình khám phá biểu đồ khi tôi cố gắng nhấn điểm cuối.

Only friends who installed this app are returned in API v2.0 and higher. total_count in summary represents the total number of friends, including those who haven't installed the app 

Để được trả lại chỉ là danh sách bạn bè của người dùng, bạn có thể thử nhấn endpoint dưới đây với một truy cập hợp lệ thẻ

FB.api('me/friendlists') 

Nhưng lưu ý rằng bạn cần read_custom_friendlists sự cho phép của người dùng.

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