2012-03-07 451 views
0

我有這樣的代碼從我的facebook web應用程序:Facebook應用程序權限錯誤

<?php if (!$user_profile) { ?> 
     <div class="fb-login-button" data-perms="email,user_birthday,publish_stream">Login with Facebook</div> 
    <?php } else { ?> 

     Your user profile is 
     <pre> 
     <?php //print htmlspecialchars(print_r($user_profile, true)) ?> 
     </pre> 



     <?php echo $user_profile['name']; ?> 

     <?php 
     $data = array("message" => "Hello Woghfd!"); 
     $status = $facebook->api("/me/feed", "POST", $data); 
     //echo $user; 

     ?> 
    <?php } 

我有這樣的代碼,很簡單的事情張貼到牆上的用戶。我知道我需要這個publish_stream的許可,所以我包括這個按鈕(在頂部),但當用戶訪問我的網站時,他們得到的錯誤:

致命錯誤:Uncaught OAuthException:(#200)用戶沒有授權應用程序執行此操作

現在,當用戶通過Facebook登出Facebook,然後使用我的登錄按鈕登錄時,它可以正常工作,但是我怎樣才能設置它以使它變得不重要第一次訪問該網站時顯示此錯誤?太混亂了!

謝謝:)

回答

1

你的if語句不檢查用戶是否與應用程序認證:

if (!$user_profile) 

要檢查用戶是否通過驗證,做這樣的事情:

 try { 
      $fb_userid = $facebook->getUser(); 

      // user is authenticated continue normally... 

     } catch (FacebookApiException $e) { 

      // user is not authenticated, do something else... 

     }