3

情况:我正在尝试从 ColdFusion CFC 调用 LinkedIn API 以获取用户的个人资料和网络(连接)。LinkedIn API 声明,要执行此操作,您必须调用范围=r_fullprofile+r_network 的 URL。

问题:ColdFusion 自动对 URL 进行编码,因此加号被编码,LinkedIn 拒绝了我的呼叫。有没有办法解决?我在下面发布了一个链接,指向 github 上的一些代码片段,我相信这说明了这个问题。

https://gist.github.com/4535364

任何帮助,将不胜感激!

4

2 回答 2

2

我已经对此进行了一些搜索,并且看到了很多 ColdFusion 无法很好地与 LinkedIn API 配合使用的示例。所以我担心如果你确实通过了这个问题(虽然我还没有想出替代方案)另一个会突然出现。在搜索时,我发现了一些人们使用linkedin-j 的建议,这是一个用于 LinkedIn API 的 Java 包装器。以下是我找到的一些参考资料:

工作示例 Coldfusion 和 Linkedin API

LinkedIn-J 不返回教育

401 未经授权的响应。API people/~ 和 people/id=; 冷融合,cfhttp

问题更新状态 - 401 未授权 - ColdFusion

linkedin-j 入门

Side Note Your github code example is making a cfhttp call to 'receiver.cfm' but you called the file 'cfhttp_receiver.cfm'. In this line:

<cfhttp url="http://#cgi.http_host#/sandbox/receiver.cfm?scope=#url.scope#" method="post" resolveurl="no">
于 2013-01-15T15:32:40.220 回答
1

范围字段是一个空格分隔的列表。

+字符通常用作空格的快捷方式,因为它比%20(空格编码的内容)更具可读性。

如果使用加号导致发送编码的加号 (%2B),那么您还有另外两种将空格放入 URL 的方法:

  1. 使用文字空格字符,或
  2. 使用编码空间%20

尝试这两个选项,最好使用网络嗅探器(例如WireShark),这样您就可以准确地看到正在发送的内容。

更新:根据下面的评论,%20是正确的,但是基于签名的字符串需要再次编码,因此%变成%25,给出%2520.

于 2013-01-15T05:19:51.063 回答