【发布时间】:2013-02-26 06:25:54
【问题描述】:
我有一个用 Coldfusion 8 编写的 Instagram 应用程序,它基本上通过标签提取媒体,然后允许人们对照片点赞/投票,这一切都是通过 Instagram API 完成的。不过,Liking 部分让我悲痛欲绝,因为我可以在没有戏剧性的情况下获得 Authentication 和 Access_Token,但是 Access_Token 默认情况下似乎没有 Like 的权限。 Authenticate 调用“范围”有一个可选参数,它允许您传递 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>
【问题讨论】:
-
您是否尝试将范围附加到 URL 而不是帖子的一部分?您仍然应该能够使用查询字符串发送帖子数据。
LOCAL['config']['url'] = VARIABLES.authURL & '?scope=likes+comments+relationships' -
嗨,特拉维斯感谢您的回复。今天又搞砸了 5-6 个小时后,我终于发现了问题所在。 Instagram 文档具有误导性!在身份验证的第三阶段通过时,范围似乎不起作用,无论我尝试通过多少种方式并通过它,所以我回去并将 scope=likes+cmets+relationships 添加到 api.instagram.com/oauth/authorize 初始步骤和有效!所以我最终浪费了大约 10 个小时,因为 Instagram 上的误导性文档说明了范围参数的放置位置。
-
太好了,很高兴您能够解决问题。我会尝试提交错误报告或 instagram 必须解决文档问题的任何流程。我还将把它写成 Stack Overflow 上的官方答案,供未来用户使用。
标签: coldfusion instagram