我有一个用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>
答案 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,之后其他所有内容都像魅力一样。