0

単純な PHP 関数 file_get_contents に問題があります... NULL が表示されますが、サーバーで有効になっているため、どこに問題があるのか​​ わかりません。

<?php
$url = "http://graph.facebook.com/oauth/access_token?client_id=(ID)&
    client_secret=(PW)&grant_type=client_credentials";
$app_token = file_get_contents($url);
echo $app_token;
?>

(ID) と (PW) は appID と appSecret

前もって感謝します!

4

2 に答える 2

0

HTTPS を使用する必要があり、どのラッパーが有効になっているかを確認します

Windows では、php.ini にこれが表示されます。

extension=php_openssl.dll

ラッパーをチェックする

<?php
    var_dump(stream_get_wrappers());
?>

次のような出力が得られるはずです

array(12) {
  [0]=>
  string(5) "https"
  [1]=>
  string(4) "ftps"
  [2]=>
  string(13) "compress.zlib"
  [3]=>
  string(14) "compress.bzip2"
  [4]=>
  string(3) "php"
  [5]=>
  string(4) "file"
  [6]=>
  string(4) "glob"
  [7]=>
  string(4) "data"
  [8]=>
  string(4) "http"
  [9]=>
  string(3) "ftp"
  [10]=>
  string(4) "phar"
  [11]=>
  string(3) "zip"

HTTPS が配列内にあることに注意してください。

トークンを取得する方法の完全な例

<?php 

    $app_id = "YOUR_APP_ID";
    $app_secret = "YOUR_APP_SECRET";
    $app_token_url = "https://graph.facebook.com/oauth/access_token?"
        . "client_id=" . $app_id
        . "&client_secret=" . $app_secret 
        . "&grant_type=client_credentials";

    $response = file_get_contents($app_token_url);
    $params = null;
    parse_str($response, $params);

    echo("This app's access token is: " . $params['access_token']);

 ?>

http://developers.facebook.com/docs/howtos/login/login-as-app/

于 2012-10-27T12:16:05.727 に答える
0

個人的には、php curl と https (http://developers.facebook.com/docs/reference/api/) を使用します。

HTTPS の代わりに HTTP を出力すると: { "error": { "message": "client_secret must be passed over HTTPS", "type": "OAuthException", "code": 1 } }

開発中はエラー報告をオンにしてください。警告: file_get_contents(): ラッパー "https" が見つかりません - PHP を構成したときに有効にするのを忘れましたか? /usr/local/apache2/htdocs/xxxxx/test12345.php の 3 行目

于 2012-10-27T08:39:06.613 に答える