3

状況: ColdFusion CFC から LinkedIn API を呼び出して、ユーザーのプロファイルとネットワーク (接続) を取得しようとしています。LinkedIn API は、これを行うには、scope=r_fullprofile+r_network で URL を呼び出す必要があると述べています。

問題: ColdFusion は URL を自動的にエンコードするため、プラス記号がエンコードされ、LinkedIn が呼び出しを拒否します。これを回避する方法はありますか?問題を説明していると思われる github のコード スニペットへのリンクを以下に投稿しました。

https://gist.github.com/4535364

どんな助けでも大歓迎です!

4

2 に答える 2

2

これについて少し調べてみましたが、ColdFusionがLinkedInAPIでうまく機能していない例がたくさんあります。したがって、この問題に合格した場合(私はまだ代替案を考えていませんが)、別の問題が発生するのではないかと心配しています。検索中に、LinkedInAPIのJavaラッパーであるlinkedin-jを使用するためのいくつかの提案を見つけました。これが私が見つけた参考文献のいくつかです:

作業例ColdfusionとLinkedinAPI

LinkedIn-Jは教育を返しません

401不正な応答。API people /〜およびpeople / id =; ColdFusion、cfhttp

ステータスの更新の問題-401無許可-ColdFusion

LinkedIn-jはじめに

補足GitHubのコード例ではcfhttp「receiver.cfm」を呼び出していますが、ファイルを「cfhttp_receiver.cfm」と呼んでいますこの行で:

<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 にスペースを挿入する別の方法が 2 つあります。

  1. リテラルスペース文字を使用する、または
  2. エンコードされたスペースを使用する%20

これらのオプションの両方を試してください。理想的にはネットワーク スニファー (例: WireShark ) を使用して、何が送信されているかを正確に確認できるようにします。

更新: 以下のコメントによると、%20正しいですが、署名ベースの文字列を再度エンコードする必要があるため、 が に%なり%25、 の結果が得られ%2520ます。

于 2013-01-15T05:19:51.063 に答える