更新:
API エラー コードに答えるには: 191
はredirect_uri
、サイト URL と同じ (または相対的) である必要があります。
ヒント: 特定のページを指す完全な URL ではなく、ベース URL を使用してください。
推奨されません:たとえばwww.mydomain.com/fb/test.html
、サイト URL としてwww.mydomain.com/fb/secondPage.html
を使用し、これを使用するredirect_uri
と 191 エラーが発生します。
推奨:代わりに、サイト URL をwww.mydomain.com/
ORのようなベース URL に設定しますwww.mydomain.com/fb/
。
今日、Facebook Python サンプル アプリケーションを試してみましたが、ローカルで開発している場合にサイト URLとして使用できることが明確に記載されていたことにショックを受けました。http://localhost:8080/
サイト URL を構成し、それを Web サーバーに向けます。ローカルで開発している場合は、
http://localhost:8080/を使用できます。
それはできないと確信していましたが、私自身の経験 (非常に古いテストですが) に基づいて、実際には Facebook アプリケーションをローカルでテストできるようです!
そこで、私の古いアプリケーションを手に取り、その名前、サイト URL、およびキャンバス URL を編集しました: サイト URL:http://localhost:80/fblocal/
最新のFacebook PHP-SDKxampp/htdocs/fblocal/
をダウンロードして、フォルダーに放り込みました。
しかし、私はあなたと同じエラーを受け取りました! XAMPPが自動リダイレクトを行っていることに気付いたhttp://localhost/fblocal/
ので、設定を単純に変更するhttp://localhost/fblocal/
とエラーはなくなりましたが、アプリケーションを(プライバシー設定から)削除してアプリケーションを再インストールする必要がありました。結果は次のとおりです。

その後、publish_stream
許可を求めたところ、自分のプロファイルに公開できました (PHP-SDK を使用):
$user = $facebook->getUser();
if ($user) {
try {
$post = $facebook->api('/me/feed', 'post', array('message'=>'Hello World, from localhost!'));
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
結果:
