【问题标题】:Graph API Get all photosGraph API 获取所有照片
【发布时间】:2015-04-15 03:48:39
【问题描述】:

我有一个网站,人们可以上传图片以进行评分/喜欢等。我正在开发一个功能,如果他们不想上传图片,他们可以从那里的 Facebook 帐户导入它们。

我可以使用 PHP Graph API 从 Facebook 登录/注销用户,但我不确定我需要获取登录人员照片的请求。我已将登录 url 设置为 user_photos 权限。

几年前我有一个类似的功能,我会使用 FQL 来查询图像,但现在我使用的是新的 Facebook v4 Graph API。

任何帮助将不胜感激。

FacebookSession::setDefaultApplication( 'ID', 'SECRET' );
$helper = new     FacebookRedirectLoginHelper('URL');
$permissions = array(
'user_photos'
);
try {
if ( isset( $_SESSION['access_token'] ) ) {
    // Check if an access token has already been set.
    $session = new FacebookSession( $_SESSION['access_token'] );
} else {
    // Get access token from the code parameter in the URL.
    $session = $helper->getSessionFromRedirect();
}
} catch( FacebookRequestException $ex ) {

// When Facebook returns an error.
print_r( $ex );
} catch( \Exception $ex ) {

// When validation fails or other local issues.
print_r( $ex );
}
if ( isset( $session ) ) {

// Retrieve & store the access token in a session.
$_SESSION['access_token'] = $session->getToken();
// Logged in
echo 'Successfully logged in!';
} else {

// Generate the login URL for Facebook authentication.
$loginUrl = $helper->getLoginUrl($permissions);
echo '<a href="' . $loginUrl . '">Login</a>';
}

【问题讨论】:

    标签: php facebook


    【解决方案1】:

    用户登录后,你可以得到这样的照片:

    FacebookSession::setDefaultApplication($APP_ID, $APP_SECRET);  
    
    $session = new FacebookSession($access_token);
    
    $response = (new FacebookRequest($session, 'GET', '/me/photos?fields=source&limit=100'))->execute();
    $object = $response->getGraphObject();
    $arr = self::convertToAssoc($object);
    

    输入你的值的限制参数。

    以下是转换 facebook-object 的方法:

    public static function convertToAssoc($graphObject){
            $arr = $graphObject->asArray();
            if ( !array_key_exists('data', $arr) ){
                $arr['data'] = '';
            }
            $arr_data = $arr['data'];
    
            $data = [];
            foreach($arr_data as $item){
                $data[] = get_object_vars($item);   
            }
    
            return $data;    
        }
    

    【讨论】:

      猜你喜欢
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多