簡體   English   中英

Facebook API 400 錯誤請求

[英]Facebook API 400 Bad Request

我正在嘗試使用 Facebook api 運行 fql 查詢。 我在 PHP 中設置了所有內容,代碼如下:

  $app_id = 'APP_ID';
  $app_secret = 'APP_secret';
  $my_url = "url.com/facebook.php";


  $code = $_REQUEST["code"];

 //auth user
 if(empty($code)) {
    $dialog_url = 'https://www.facebook.com/dialog/oauth?client_id=' 
    . $app_id . '&redirect_uri=' . urlencode($my_url) ;
    echo("<script>top.location.href='" . $dialog_url . "'</script>");
  }

  //get user access_token
  $token_url = 'https://graph.facebook.com/oauth/access_token?client_id='
    . $app_id . '&redirect_uri=' . urlencode($my_url) 
    . '&client_secret=' . $app_secret 
    . '&code=' . $code;
  $access_token = file_get_contents($token_url);


  // Run fql query
  $fql_query_url = 'FQL_Query';
  $fql_query_result = file_get_contents($fql_query_url);
  $fql_query_obj = json_decode($fql_query_result, true);

使用上面的代碼一切正常,但最近我決定更改我的 URL 結構,而不是通過url.com/facebook.php訪問頁面,我想通過url.com/#facebook訪問它。

當我對 $my_url 變量進行此更改時,我收到以下錯誤。

[function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request

有任何想法嗎? 謝謝!

我通過在xampp/php/php.ini文件中添加extension=php_openssl.dllxampp/php/php.ini解決了它。 在 XAMPP 的某些版本中,此行被注釋為;extension=php_openssl.dll ,因此只需取消注釋並重新啟動 apache。

好吧,讓我們從facebook應用程序設置開始。 在應用程序設置中,您定義了“畫布 URL”,如果您決定更改它,那么您不僅需要在代碼中更改它,還需要在開發者應用程序的應用程序設置中更改它。

另一件事是,如果 facebook 使用 url 調用您的頁面,那么在進行身份驗證時,您必須在 redirect_uri 參數中使用完全相同的 url,它在文檔中( http://developers.facebook.com/docs/authentication/ ) . 這是他們寫的關於 redirect_uri 的內容:

redirect_uri 必須位於您在開發者應用程序摘要選項卡的網站部分中指定的站點 URL 的路徑中。 如果它是域的根,則應以斜杠結尾。 請注意,您的 redirect_uri 不能是重定向器。

為了對您的應用進行身份驗證,您必須將授權代碼和您的應用機密傳遞給 Graph API 令牌端點 - 以及上面使用的完全相同的 redirect_uri - 在https://graph.facebook.com/oauth/access_token

現在,您決定更改 url 以在其中包含哈希 (#) 並不是一個好的決定。 網址的這一部分不適合您嘗試使用它的目的。 只需谷歌“url 中的哈希部分”並閱讀一些內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM