15

ここの例に従って、サンプルのFacebook phpログインの例を開発しようとしています

ここでアプリをホストしましたが、リンクにアクセスしようとするたびに、質問にエラー メッセージが表示されます。エラーをスローするコードセグメントは次のとおりです

try {
  $e = new FacebookApiException(array(// LINE 887
             'error_code' => curl_errno($ch),
             'error' => array(
             'message' => curl_error($ch),
             'type' => 'CurlException',
        ),
  ));
  curl_close($ch);
}

// edit suggested by Kneel-before ZOD
catch(FacebookApiException $e) {
  $result = $e->getResult();
  echo 'Got an : ', $e->getType(),' while posting';
  echo(json_encode($result));
}

catch(Exception $e){
  echo 'Caught exception: ',  $e->getMessage(), "\n";
}

index.phpでAPP IDとシークレットを正しく設定したと確信しています。

これは、Facebookでの私のアプリ設定のスクリーンショットですアプリのセットアップ

どんな助けでも大歓迎です。ありがとう!

4

11 に答える 11

0

Facebook.com に接続するようにプロキシを設定する

## base_facebook.php でコードを検索 # #

public static $CURL_OPTS = array(
        CURLOPT_CONNECTTIMEOUT => 10,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT        => 60,
        CURLOPT_USERAGENT      => 'facebook-php-3.2',
      );

そして追加オプション

  public static $CURL_OPTS = array(
    CURLOPT_CONNECTTIMEOUT => 10,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 60,
    CURLOPT_USERAGENT      => 'facebook-php-3.2',
    CURLOPT_PROXY      => '199.200.120.140:8089',
  );
于 2014-11-04T11:11:08.663 に答える
0

try ブロックで例外を作成するのはなぜですか?

私の現在の作業ログイン機能は次のようになります。

public function login()
{               
    $this->load->library('facebook/facebook',$config);
    $uid = $this->facebook->getUser();

    if ($uid) 
    {           
      try 
      {             
        $user_profile = $this->facebook->api('/' . $uid);  

        //then redirect to whatever you need..
      } 
      catch (FacebookApiException $e) 
      { error_log($e);
        $uid = null;
        $this->facebook->destroySession();
      }
    }
    else 
    {
        $params = array(
            'canvas'    => 1,
            'fbconnect' => 0,
            'scope' => 'email',
        );
        echo "<script>top.location.href='" . $this->facebook->getLoginUrl($params)."'</script>";            
        exit();
    }
}
于 2013-09-23T19:40:15.320 に答える
0

あなたのコードとは何の関係もありません。Curl は単に facebook グラフ API に接続できません。これは、ホストが他のホストへの発信接続をブロックしているか、Facebook がホストをブロックしていることが原因である可能性があります。

ssh にアクセスできる場合は、http://graph.facebook.com にアクセスし たり、php ログを確認したりできます。それ以外の場合は、ホストに問い合わせてください。

于 2014-09-05T15:16:09.203 に答える
0

リンクはhttpsです。証明書情報を提供する必要がある場合があります。そうしないと、証明書にアクセスできない場合、curlは通常エラーをスローしてから追加します

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

あらゆる証明書へのアクセスを許可します。

于 2014-10-04T10:28:06.620 に答える
0

try ... catch ブロックで例外を作成しています。そのようなことをする必要はありません。アプリケーションで例外をスローする可能性のあるコード セグメントを処理するように設計された try-catch ブロック。例外をスローする可能性があるこのブロック コード セグメント内に配置する必要があります。あなたの場合、Facebook API への cURL リクエストである可能性があります。

于 2014-06-20T14:31:36.087 に答える
0

php.iniカール機能が許可されていることを確認してください。

ubantu の場合、端末でこのコードを試してください

sudo apt-get install php5-curl

使用してApacheサーバーを再起動した後

sudo service apache2 restart

于 2015-03-13T13:40:26.157 に答える