私はInstagramの写真を扱うWebサイトに取り組んでいます。
確認のために、ユーザーを Instagram のログイン ページに誘導する必要があります。このプロセスでは、承認のために、Web サイトが URL でいくつかのパラメーターを送信する必要があります。フォーマットを以下に示します。
インスタグラムのドキュメントから -
https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code
GET リクエストを使用して Instagram の URL にアクセスすると、問題なく動作します。しかし今、これらの値を URL から非表示にして、ユーザーから非表示にしたいと考えています。
そこで、windows.onload でフォーム パラメータを非表示として送信し、代わりに Instagram URL にアクセスする JSF ページを作成することにしました。このようにして、パラメータを非表示にすることができます。
JSFページ
<h:body>
<h:form prependId="false">
<h:inputHidden id="client_id" value="#{applicationBean.instagramClientID}" /><br/>
<h:inputHidden id="redirect_uri" value="#{applicationBean.instagramRedirectUrl}" /><br/>
<h:inputHidden id="response_type" value="code" />
</h:form>
<script type="text/javascript">
window.onload = function submitPage() {
document.forms[0].action="#{applicationBean.instagramAuthUrl}";
document.forms[0].submit();
}
</script>
</h:body>
しかし、これは instagram 側から失敗し、コード エラー 400 が発生します。
{"code": 400, "error_type": "OAuthException", "error_message": "You must include a valid client_id, response_type, and redirect_uri parameters"}
値を確認しましたが、すべて問題ないようです。私が気付いた唯一のことは、「フォーム ID」も渡されていることです。特定のパラメーターのみを送信する必要があるため、これが認証の失敗を引き起こしていると思います。true の場合、POST リクエストを使用してこれを克服するにはどうすればよいですか?
または、POST リクエストで何か間違ったことをしていますか?
前もって感謝します。
環境: Java 1.6、JSF 2