我知道有很多关于facebook和php sdk的问题,抓住并采取一些信息。但我有不同的问题。
想象我已经做了所有事情。
授权用户通过fb javascript sdk + php和ajax,在数据库中存储基本信息并忘记了facebook。现在我的用户可以使用我的数据库登录facebook信息。
在我的数据库中我有:
id user_fb say_smth access register mail limitTime count
注意有user_fb,这是facebook id。
当用户登录时,我创建会话并使用jquery / ajax / json parse获取
// Cache hit
// $start = microtime(true);
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT fb_id, email, password FROM sp_signup WHERE email = '{$email}' AND password = '{$passw}' LIMIT 1");
$check_row = $res->num_rows;
$check_array = $res->fetch_assoc();
$res->free();
if ($check_row == 0)
{
print json_encode( array("status" => "user does not exists", "code" => 10) );
} else {
if ( ! isset($_SESSION) )
{
session_start();
$_SESSION[ "dh_user_fb" ] = $check_array["fb_id"];
print json_encode( array("status" => "", "code" => 4, "session" => $_SESSION[ "dh_user_fb" ]) );
} else {
print json_encode( array("status" => "", "code" => 4, "session" => null) );
}
} // endcode
和jquery ajax成功方法
var gotJson = jQuery.parseJSON(jsonR);
var code = gotJson['code'];
var status = gotJson['status'];
var session = gotJson['session'];
if ( session == null ){
if ( code == 11 ){
$("#email_try").html(status).fadeIn(600);
$("#email_try").html(status).fadeOut(2200);
} else if ( code == 12 || code == 10 ) {
$("#passw_try").html(status).fadeIn(600);
$("#passw_try").html(status).fadeOut(2200);
} else {
//
}
}
所以当用户输入时,有$ _SESSION [“fb_id”];
我需要通过php登录用户相册并将其复制到我的本地ftp或从facebook获取src。这不是必要的。
我只对此感兴趣,如果有机会在没有访问权限和登录等情况下执行此操作,我只想通过fb_id执行此操作;
...谢谢
答案 0 :(得分:0)
如果不调用api,你就无法直接获取它。
获得用户访问其照片的权限
$loginLink = $facebook->getLoginUrl(array(
'scope' => 'user_photos,user_photo_video_tags'
));
然后使用此API获取用户照片:
$photos = $facebook->api('/me/photos?access_token=' . $token);