2011-10-11 103 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

相關問題