EDIT: I understood the problem. # In #user_sex does not convert to% 23 on python requests. Is there a way to make python requests convert # to% 23 or do I just need to pass the code for this part?
I am trying to do multi-user fql futures. When I use fql_url below
fql_url = ( 'https://graph.facebook.com/fql?q=' '{"user_sex":"SELECT sex FROM user WHERE uid=me()",' '"friends":"SELECT uid, name FROM user WHERE uid IN ' '(SELECT uid2 FROM friend WHERE uid1 = me()) ' 'AND not (sex in (SELECT sex FROM #user_sex)) ' ' ORDER BY name"}' '&access_token='+access_token )
and run request.get (fql_url) returned by json -
{u'error': { u'code': 601, u'message': u"(#601) Parser error: unexpected '{' at position 0.", u'type': u'OAuthException'} }
However, when I pass the fql_url code like this
fql_url = ( 'https://graph.facebook.com/fql?q=%7B%22' 'user_sex%22:%22SELECT%20sex%20FROM%20user%20WHERE%20uid=me()%22,%22' 'friends%22:%22SELECT%20uid,%20name%20FROM%20user%20WHERE%20uid%20IN%20' '(SELECT%20uid2%20FROM%20friend%20WHERE%20uid1%20=%20me())%20' 'AND%20not%20(sex%20in%20(select%20sex%20from%20%23user_sex))%20%20' 'ORDER%20BY%20name%22%7D&' 'access_token='+access_token )
everything works (json has the required data).
I compared both the first fql_url and the manual fql_url code, and both should result in the same url being used to get json. Is the urlencode request broken or am I doing something wrong here?
source share