0

我正在一个处理 Instagram 图片的网站上工作。

我必须将用户引导到 Instagram 登录页面进行验证。这个过程需要我的网站在 URL 中发送几个参数,用于授权。格式如下。

来自 instagram 文档 -

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code

当我使用 GET 请求访问 Instagram URL 时,它工作正常。但现在我想从 URL 中隐藏这些值,并对用户隐藏它。

所以我决定编写一个 JSF 页面,在 windows.onload 上将表单参数提交为隐藏并点击 Instagram URL。这样我可以隐藏参数。

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"}

我检查了这些值,它们似乎都很好。我唯一注意到的是一个“form-id”也被传递了。我认为这会导致授权失败,因为我只需要发送特定的参数。如果为真,我该如何使用 POST 请求来克服这个问题?

或者我在我的 POST 请求中做错了什么?

提前致谢。

环境:Java 1.6,JSF 2

4

1 回答 1

-1

尝试传递这些硬编码的值并发布结果。

于 2012-10-27T15:34:48.780 回答