-2

この初心者の質問で最初に申し訳ありません。Facebookからデータを取得しようとしています。ウェブサイト用に Facebook アプリケーションをセットアップしました。データのフェッチは機能していますが、場所 (Facebook 情報) を非公開に設定すると、返されるデータに場所データが含まれていません。

モデルはこちら

class Facebook_model extends CI_Model {

public function __construct()
{
    parent::__construct();

    $config = array(
                    'appId'  => 'APP_ID',
                    'secret' => 'SECRET',
                    'fileUpload' => true, 
                    );

    $this->load->library('Facebook', $config);

    $user = $this->facebook->getUser();
    $profile = null;
    if($user)
    {
        try
        {
            $profile = $this->facebook->api("/me", 'get');
        }catch(FacebookApiException $e)
        {
            error_log($e);
            $user = null;
        }
    }

    $fb_data = array(
        'me' => $profile,
        'uid' => $user,
        'loginUrl' => $this->facebook->getLoginUrl(
            array(
                    'scope' => 'email,publish_stream,user_about_me,user_checkins,publish_stream,friends_about_me',
                    'redirect_uri' => base_url() . 'index.php/welcome/topsecret/'
                )
            ), 
        'logoutUrl' => $this->facebook->getLogoutUrl()  
    );

    $this->session->set_userdata('fb_data', $fb_data);

      }

これは、プライバシーが公開に設定されている私のダミーアカウントからの出力です

 Array
(
   [me] => Array
     (
        [id] => 100004160084328
        [name] => Dave Batista
        [first_name] => Dave
        [last_name] => Batista
        [link] => http://www.facebook.com/dave.batista.355
        [username] => dave.batista.355
        [birthday] => 08/03/1991
        [hometown] => Array
            (
                [id] => 106050279435951
                [name] => Quezon City, Philippines
            )

        [location] => Array
            (
                [id] => 106050279435951
                [name] => Quezon City, Philippines
            )

        [gender] => male
        [email] => davebatista@gmail.com
        [timezone] => 8
        [locale] => en_GB
        [updated_time] => 2012-08-12T23:38:18+0000
    )

[uid] => 100004160084328
[loginUrl] => https://www.facebook.com/dialog/oauth?       client_id=266349843476112&redirect_uri=http%3A%2F%2Fpractice.com%2Findex.php%2Fwelcome%2Ftopsecret%2F&state=5d41b131b2d1e631e721cd0f6a1056aa&scope=email%2Cpublish_stream%2Cuser_about_me%2Cuser_checkins%2Cpublish_stream%2Cfriends_about_me
[logoutUrl] => https://www.facebook.com/logout.php?next=http%3A%2F%2Fpractice.com%2Findex.php%2Fwelcome%2Ftopsecret%2F&access_token=AAADyPmfObpABABJKZCZBdAXy3iPJyu4qRFEAPI8XpWS94iFZAtvnnMDkzb8yBjgQQQ8oe2O38g9QzqN834jA9axvTT0RkulRBtNItTOIAZDZD
)
4

2 に答える 2

0

$ fb_data['loginUrl']['scope']に「user_location」を追加してみてください。FB APIで使用できるすべての権限のリストは次のとおりです:https ://developers.facebook.com/docs/authentication/permissions/

于 2012-08-13T05:25:02.783 に答える
0
  1. user_location の facebook アプリでユーザーと友達のアクセス許可を取得する
  2. 使用する

    $param = array('scope' =>'email,user_location,user_birthday,offline_access', 'redirect_uri' => base_url() ); リダイレクト($this->fb_connect->getLoginUrl($param));

于 2012-08-14T03:51:04.103 に答える