我在朋友搜索方面遇到了一些问题。我正在开发app以发布一些东西来选择朋友们的墙。我正在使用JavaScript SDK登录并获得权限。
我的初始化功能:
FB.init({
appId: 'xxxxxxxxx',
status: true,
cookie: true,
xfbml: true,
oauth: true});
登录功能:
FB.login(function(response) {
if (response.authResponse){
//if loged in
}else{
//if canceled
}
}, {scope: 'publish_stream'});
在此之后我使用的输入id是用jQuery搜索朋友实时搜索:
$("#search").keyup(function(){
$("#friends").load("draugai.php",{
"search":$("#search").val()
}, function(){
$(".friend").click(function(){
$(this).addClass("selected").siblings().removeClass("selected");
});
});
});
我的php文件使用fql进行朋友搜索:
require_once('facebook.php');
$config = array(
'appId' => 'XXX',
'secret' => '1234',
'cookie' => true
);
$facebook = new Facebook($config);
try {
$user_id = $facebook->getUser();
} catch (FacebookApiException $e) {
echo($e->getType());
echo($e->getMessage());
}
if ($_POST['search'] != "") {
$search = strtolower($_POST['search']);
$fql = "SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND strpos(lower(name),'$search') >= 0 ORDER BY name";
} else {
$fql = "SELECT uid, name, pic_square FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) ORDER BY name";
}
if ($user_id) {
try {
$ret_obj = $facebook->api(array(
'method' => 'fql.query',
'query' => $fql,
));
foreach ($ret_obj as $value) {
echo "<div class=\"friend\" uid=\"" . $value['uid'] . "\">";
echo $value["name"] . "<img src=\"" . $value['pic_square'] . "\"/>";
echo "</div>";
}
} catch (FacebookApiException $e) {
echo($e->getType());
echo($e->getMessage());
}
} else {
echo "no user";
}
我对这款应用有一些问题:
我希望我解释每一个都很容易理解。我对我可怜的英语很有兴趣。
感谢您的回答和建议。
答案 0 :(得分:0)
您可以考虑使用Feed Dialog。它使用(非常熟悉的)下拉列表进行朋友选择(您的用户无疑会熟悉它)。你可以留下朋友搜索到Facebook
您已经证明可以使用JavaScript SDK来调用login方法,因此调用FB.ui()
方法应该相当直接。以下是我上面链接的Facebook文档中的代码示例。
var obj = {
method: 'feed',
link: 'https://developers.facebook.com/docs/reference/dialogs/',
picture: 'http://fbrell.com/f8.jpg',
name: 'Facebook Dialogs',
caption: 'Reference Documentation',
description: 'Using Dialogs to interact with users.'
};
function callback(response) {
document.getElementById('msg').innerHTML = "Post ID: " + response['post_id'];
}
FB.ui(obj, callback);
在callback
功能中,您可以通过检查是否存在post_id
参数来检测到帖子是否成功。