6

...でもそうです!

アクセストークンを受け取るために、次のリンクを使用してFacebookAPIを呼び出しています。

https://www.facebook.com/dialog/oauth?client_id=myclientid&redirect_uri=http%3A%2F%2Fmydomain.org%3A8080%2FServer%2FFacebookAuthenticationVerificationServlet&scope=manage_notifications,offline_access,read_mailbox,read_stream,publish_stream

私は何が間違っているのですか?

Facebookは次のエラーで応答します。

message: redirect_uri isn't an absolute URI. Check RFC 3986.
type: OAuthException
code: 191

それはそれとは何の関係もないはずですが、私はJavaのURLEncode.encode()を使用してURLをUTF-8にエンコードしています。その結果をJavaScriptのencodeURIComponent()の結果と比較しましたが、違いは見つかりませんでした。

編集:ドメインを構成に設定する必要がありますか?「アプリドメイン」で見つけることができませんが(Facebookではポート構成でドメインを追加できないため)、ドメインを「自分のWebサイトのURL」として設定しました。

EDIT2:エンコードされていないリダイレクトURI:http: //mydomain.org :8080/Server/ FacebookAuthenticationVerificationServlet

EDIT3:これは:8080とは何の関係もありません。php-script(URLはbla.domain.org/myphp.phpのようなもの)でテストし、phpスクリプトでコードをTomcatサーバーに送信しましたが、エラーが解決しませんでした。

4

3 に答える 3

2

さて、私はOAuthプロトコルを誤解していることがわかりました。THENがaccessTokenに私を導くauthorizationCodeをフェッチしていました。

しかし、私はそのエラーを具体的に修正することができませんでした。手順を再開発し、認証コードとアクセストークンの分離を実装したところ、正常に機能するようになりました。

たぶん、アプリの認証を解除して、@ facebookで再認証すると、修正されましたか?

于 2012-12-02T10:52:17.467 に答える
1

Facebookのエラーコード191は

APIエラーコード:191

APIエラーの説明:指定されたURLはアプリケーションによって所有されていません

エラーメッセージ:redirect_uriはアプリケーションによって所有されていません。

mydomain.org[アプリドメイン]フィールドにあること、および[FacebookログインのあるWebサイト]フィールドが正しいことを確認してください。

于 2012-12-01T07:04:45.647 に答える
1

redirect_uriをエンコードしないでください。http%3A%2F%2Fmydomain.orgとして理解されていませんhttp://mydomain.org

于 2014-01-17T09:04:13.063 に答える