0

サイトに FB ログイン システムを実装しようとしています。私はできる限り単純なテスト ログイン ページから始めて、そこから構築したいと考えています。

このメソッドを使用する$facebook->getLoginUrl()と、生成された URL をクリックするたびにエラーが発生します。

getLoginUrl() によって生成された URL の URL 文字列に client_id パラメータが含まれていないことに気付きました。getLoginUrl 呼び出しでその client_id を設定する必要があることについて、ドキュメントには何もないようです。Facebook オブジェクトのプロパティから取得されたと思います。

これが私のコードとそれが出力するものです。

require_once("php-sdk/facebook.php");
$config = array();
$config[‘appId’] = /* my app id string */;
$config[‘secret’] = /* my app secret string */;
$config[‘fileUpload’] = false; // optional

$facebook = new Facebook($config);
$login_url = $facebook->getLoginUrl(array("scope"=>"email"));

echo  "<a href=\"$login_url\">Login with Facebook</a>";

明らかに、appID とシークレットは実際の値です。それらが正確であることを確認するために4回チェックしました。

生成された (編集された) login_url は次のとおりです。 https://www.facebook.com/dialog/oauth?redirect_uri=[mysite]&state=[state_str]&scope=email

そのはず: https://www.facebook.com/dialog/oauth?client_id=[appID]&redirect_uri=[mysite]&state=[state_str]&scope=email

ブラウザで URL を編集して client_id を含めると、機能します。明らかに、毎回正しいログイン URL を自分で手動で作成できますが、Facebook::getLoginUrl() の使用方法に問題があるかどうかを確認したい

4

1 に答える 1

0

ここに貼り付けられたコードを見たときに、Facebook のドキュメントをコピーしたときに、一重引用符であるべきものがスマート引用符としてコピーされていることに気付きました。したがって、facebook オブジェクトはアプリ ID と API シークレットで適切に初期化されていませんでした。それらを一重引用符に変更すると、問題が解決しました。

于 2012-09-22T22:47:16.557 に答える