DÜZENLEME: Problemi çözdüm. #user_sex'te #, python istekleri tarafından% 23'e dönüştürülüyor. Python isteklerini #% 23'e dönüştürmeye zorlamanın bir yolu var mı yoksa sadece bu bölümü kodlamalı mıyım?Python, urlencode istemiyor mu?
Bir facebook fql multiquery yapmaya çalışıyorum. Ben
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
)
altına fql_url kullanıp requests.get (fql_url) çalıştırdığınızda ben kodu bu
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
)
her şey gibi fql_url teslim ederken, döndürülen json Ancak
{u'error': {
u'code': 601,
u'message': u"(#601) Parser error: unexpected '{' at position 0.",
u'type': u'OAuthException'}
}
olduğunu çalışır (json istenen verilere sahiptir).
Hem ilk fql_url hem de el kodlu fql_url kodlamasını karşılaştırdım ve her ikisi de jsonu almak için aynı url kullanılmasına neden olmalıdır. Urlencode istekleri çalışmıyor mu, yoksa yanlış bir şey mi yapıyorum?
Bu mantıklı. Yani temel olarak ilk fql_url kullanmalı ve #% 23 ile # yerine almalı mıyım yoksa bunu yapmak için daha geleneksel bir yol var mı? – bab
Bana cevap vermenin pragmatik yolunu ekledim –