FQL query to fetch a user's Facebook friend's gender PLUS meeting_sex

狂风中的少年 提交于 2020-01-04 07:46:13

问题


Not quite as racy as it sounds - I'm using the below code to get a user's male or female friends only and it works fine. However, I also want to check their 'meeting_sex' which is a list of the genders a user's friend is interested in meeting, i.e. male, female or both. (Described here)

The meeting_sex requires the friends_relationship_details permission which I've added to the graph API explorer, but my output looks like this:

"data": [
{
  "name": "ABCDEF", 
  "pic_square": "https://abcdefg.jpg", 
  "sex": "male", 
  "meeting_sex": null, 
  "uid": 123456789
}, 

I.e. the meeting_sex is coming back null. I know the meeting_sex is an array, not just a string, as are the other elements, but why is it coming back null?

I'm new to FQL, and in fact any QL, so once I do get the array to read properly, how do I then make the comparison? i.e so I only return MEN who like WOMEN or MEN who like MEN etc. Here's my current code:

NSString *queryString =  [NSString stringWithFormat:@"SELECT name, pic_square, sex, meeting_sex, uid FROM user WHERE uid in (SELECT uid2 FROM friend WHERE uid1 = me()) AND sex = 'male' ORDER BY name"];
NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys: queryString, @"query", nil];

[FBRequest getRequestWithParams:dictionary
                     httpMethod:@"GET" 
                       delegate:self
                     requestURL:@"fql.query"];

Thanks for any help :)

Michael


回答1:


I've tried this on my account and I get nulls for all but one of my friends. They have an empty array for both the meeting_for and meeting_sex

I've found that some have suggested this is no longer being used:

http://forum.developers.facebook.net/viewtopic.php?id=103173

Also, it seems there's a lot of privacy concerns around this:

See https://www.facebook.com/settings/?tab=privacy Click "Apps and Websites" then "How people bring your info to apps they use"

Also From https://developers.facebook.com/docs/reference/rest/users.getInfo/

User Privacy and Visible Data

Important: Depending upon the user's privacy settings (including whether the user has decided to opt out of Platform completely), you may not see certain user data. For any user submitted to this method, the following user fields are visible to an application only if that user has authorized that application and specifically chose to reveal them:

    meeting_for
    meeting_sex
    religion

EDIT

New in the Graph API's user (https://developers.facebook.com/docs/reference/api/user/) object:

interested_in The genders the user is interested in. user_relationship_details or friends_relationship_details. array containing strings.




回答2:


The doc says is requires user_relashionship_details or friends_relationship_details. I think it would follow that you need to add user_relashionship_details to get this detail about the user itself, not just their friends.




回答3:


For me i was able to get the data i wanted for "meeting_sex" from the json attribute: "gender": "male", "interested_in": ["female"]

Hope this helps.



来源:https://stackoverflow.com/questions/8607032/fql-query-to-fetch-a-users-facebook-friends-gender-plus-meeting-sex

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!