2012-06-19 91 views
1

我連接到Tumblr(與twitter幾乎完全相同)。 我一直進入驗證頁面,驗證應用程序,然後返回到previos頁面,所有正確的東西都在查詢字符串上,但我在API文檔上得到了一個400錯誤,說這意味着「無效的輸入數據「。PHP oAuth總是返回代碼400

這裏是我的代碼:

 require("tumblr/tumblroauth/tumblroauth.php"); 
     // Enter your Consumer/Secret Key: 
     $consumer = $conf['Tumblr']['consumer']; 
     $secret  = $conf['Tumblr']['secret']; 
     /* Start session and load lib */ 
     if(!isset($_REQUEST['oauth_token'])) 
     { 
      // Start the Session 
      session_start(); 
      $connection = new TumblrOAuth($conf['Tumblr']['consumer'], $conf['Tumblr']['secret']); 
        // this url is correct 
      $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 
      $temporary_credentials = $connection->getRequestToken($url); 
      $redirect_url = $connection->getAuthorizeURL($temporary_credentials, FALSE); 

      echo "going to".$redirect_url; // looks good 
        //have to use this as headers have started 
      echo '<script>window.location.href="'.$redirect_url.'";</script>'; 
     } 

     /* If the oauth_token is old redirect to the connect page. */ 
     if (isset($_REQUEST['oauth_token']) && $_SESSION['oauth_token'] !== $_REQUEST['oauth_token']) { 
      $_SESSION['oauth_status'] = 'oldtoken'; 
      session_destroy(); 
     } 
     if(isset($_REQUEST['oauth_token'])) 
     {/* Create TumblroAuth object with app key/secret and token key/secret from default phase */ 
      $connection = new TumblrOAuth($consumer, $secret, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']); 

      /* Request access tokens from tumblr */ 
      $access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']); 

      /* Save the access tokens. Normally these would be saved in a database for future use. */ 
      $_SESSION['access_token'] = $access_token; 

      /* Remove no longer needed request tokens */ 
      unset($_SESSION['oauth_token']); 
      unset($_SESSION['oauth_token_secret']); 

      /* If HTTP response is 200 continue otherwise send to connect page to retry */ 
      if (200 == $connection->http_code) { 
       /* The user has been verified and the access tokens can be saved for future use */ 
       $_SESSION['status'] = 'verified'; 
       echo 'connection made heres the code:<br/>'.$connection->http_code; 
      } else { 
       /* Save HTTP status for error dialog on connnect page.*/ 


        // THIS IS ALWAYS BEING OUTPUT AT THE END 
      echo "oh no something is wrong code:<br/>".$connection->http_code; 
      } 
     } 

可以請別人一看我覺得我已經嘗試了這個星球上的一切得到這個工作.. PS使用:https://github.com/jacobbudin/tumblroauth

回答

0

我想你問題是在這裏

$redirect_url = $connection->getAuthorizeURL($temporary_credentials, FALSE); 

嘗試

$redirect_url = $connection->getAuthorizeURL($temporary_credentials); 

並讓我們知道您是否仍然有問題