ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – Facebook FQL用户表`sex`字段:即使用户使用不同的语言环境,如何返回男/女?

2019-06-10 22:18:31  阅读:247  来源: 互联网

标签:php locale facebook-fql


情况:

我的Facebook应用程序(http://apps.facebook.com/mymagicmirror/)需要检测用户的性别,然后查询异性或男性或女性

FQL:

SELECT uid, name, pic, sex FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1='.$user_id.') and sex='male'

问题:
当facebook用户使用其他语言环境时,“性别”字段不再与“男性”和“女性”匹配.相反,用中文说,性别将成为男性/女性,性别=“男性”的FQL将返回零结果.

即使facebook用户有英语以外的语言环境,任何查询所有男/女朋友的解决方案?

解决方法:

将以下功能之一添加到您的facebookapi_php5_restlib.php文件中:

users.getInfo的函数:
来自:http://forum.developers.facebook.com/viewtopic.php?pid=166745#p166745

public function &users_getInfo_en_US($uids, $fields) {
  return $this->call_method('facebook.users.getInfo',
    array('uids' => $uids, 'fields' => $fields, 'locale' => 'en_US'));
}

然后,你可以调用users_getInfo_en_US($user,array(‘sex’));

FQL的功能:
从上面的链接,但与pid = 166866#p166866
一个用于en_US语言环境(来自之前的帖子),另一个用于传递要使用的语言环境,如下所示:

public function &fql_query_localized($query, $locale) 
{
  return $this->call_method('facebook.fql.query',
    array('query' => $query, 'locale' => $locale));
}

然后,只需为$locale传入字符串’en_US’.

标签:php,locale,facebook-fql
来源: https://codeday.me/bug/20190610/1214361.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有