使用coldfusion的Instagram身份验证范围参数

时间:2013-02-22 01:14:06

标签: coldfusion instagram

我有一个用Coldfusion 8编写的Instagram应用程序,它基本上通过标签吸引媒体,然后允许人们对照片进行喜欢/投票,这些都是通过Instagram API完成的。喜欢的部分让我感到悲伤,因为我可以在没有戏剧的情况下获得Authentication和Access_Token,但是Access_Token似乎没有默认的Like权限。 Authenticate调用“scope”有一个可选的参数,它允许你传递Access_Token允许的权限,但是我无法知道如何通过ColdFusion CFHTTP作为POST传递它。

以下是通过CFHTTP发送数据的准备工作,在所有参数上循环为type =“FormField”。无论我如何尝试并呈现范围选项,无论是JSON格式,带空格的字符串,带有“+”分隔符的字符串似乎都没有效果,并且Like操作由于权限错误而继续失败。

<cfscript>
    var LOCAL = {};
    LOCAL['config'] = {};
    LOCAL['returnStruct'] = {};

    // prep packet required by the main call method
    // the following values are required for EVERY call
    LOCAL['config']['method'] = 'POST';
    LOCAL['config']['format'] = ARGUMENTS['outputType'];
    LOCAL['config']['url'] = VARIABLES.authURL;

    // variables required by this method
    LOCAL['config']['params'] = {};
    LOCAL['config']['params']['client_secret'] = ARGUMENTS.client_secret;
    LOCAL['config']['params']['grant_type'] = 'authorization_code';
    LOCAL['config']['params']['redirect_uri'] = ARGUMENTS.redirect_uri;
    LOCAL['config']['params']['code'] = ARGUMENTS.code;
    LOCAL['config']['params']['scope'] = 'likes comments relationships';

</cfscript>

1 个答案:

答案 0 :(得分:3)

如果其他人遇到“范围”没有正确应用于返回Access_Token的相同问题,那么问题是Instagram文档对于应该使用该参数的位置含糊不清。我曾经在服务器端身份验证期间尽可能地尝试了它作为POST操作,但是它似乎只在作为GET参数发送时工作,并且在一些游戏后我决定将“范围”参数添加到第二阶段身份验证,这是请求代码和工作的地方!见下文 https://api.instagram.com/oauth/authorize/?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=code&scope=likes+basic

这将向用户显示来自Instagram的确认消息,以允许应用程序代表用户执行Likes,之后其他所有内容都像魅力一样。