2011-10-11 105 views
4

我有一个应用程序已经运行了一段时间,只需要登录的目的一些帐户信息。现在我想用它来发布到流中。我已将publish_stream添加到req_perms,但它仍不会要求获得该权限。如何获得Facebook应用程序的publish_stream权限?

我错过了什么吗?

<?php 
# CREATE FACEBOOK BUTTON 
    $facebook = new Facebook(array(
     'appId' => FACEBOOKAPPID, 
     'secret' => FACEBOOKSECRET, 
     'cookie' => false, 
    )); 
    $fb_session = $facebook->getUser(); 
    $fb_me = null; 
    // Session based API call. 
    if ($fb_session) { 
     try { 
      $fb_uid = $fb_session; 
      $fb_me = $facebook->api('/me'); 
      $fb_me['photo'] = 'http://graph.facebook.com/'.$fb_uid.'/picture?type=large'; 
      $_SESSION['login_api'] = 1; 
      $_SESSION['login_api_details'] = $fb_me; 
      $_SESSION['login_api_user_id'] = $fb_uid; 

      # WE ARE GOOD TO GO, LETS GET THE ACCESS TOKEN 
      $_SESSION['access_token'] = $facebook->getAccessToken(); 


      #header_redirect(SITEURL.'/login');   

     } catch (FacebookApiException $e) { 
      error_log($e); 
     } 
    } 
    else{ 
     # LOGIN URL FOR FACE BOOK & request extra stuff 
     $fb_login_url = $facebook->getLoginUrl(array('req_perms'=>'publish_stream,email,user_about_me,user_birthday,user_website')); 
     header_redirect($fb_login_url); 
    } 
?> 

回答

5

在其他

$params = array(
    'canvas' => 1, 
    'scope' => 'publish_stream,email,user_about_me,user_birthday,user_website', 
    'fbconnect' => 1, 
    'redirect_uri' => 'https://apps.facebook.com/YOURAPP', 
); 


$fb_login_url = $facebook->getLoginUrl($params); 
header_redirect($fb_login_url); 
+0

辉煌试试这个。诀窍了。但为什么? – David

+1

@David从SDK 2.0到3.0,'req_perms'已经成为'范围' –

+0

我相信这个改变实际上是OAuth 2.0的错 - 这就是SDK改变的原因,但是如果你将它们包含在一个url中,它也会变成范围。 – mitchellhislop

相关问题