2012-03-15 9 views
5

クライアントからLinkedInグループの最新の投稿を当社のウェブサイトのページの1つに引き上げるよう依頼されました。ColdFusionを使用してLinkedinグループのディスカッションポストを取得する

私はColdFusion 9を使用して開発しており、これをかなりの数日間研究しており、誰かが私を助けてくれることを期待してここに質問を投稿することにしました。

私はrequestTokenを持っています。私は今、accessトークンを取得するためにリクエストトークンに署名する必要があることを理解しています。私の問題は、私はこれをバックグラウンドで行う必要があるということです。しかし、私が見つけることができるすべての例では、フロントエンドユーザーを認証URLにリダイレクトしてユーザーを認証できるようにしていますが、ユーザーに認証させたくない場合は、代わりにサーバー側を認証します。

私はScribe Javaラッパーライブラリーを使用しようとしています。以下は、私がこれまでにrequestToken(および許可URL)を取得したコードです。私は(例えばhttp://api.linkedin.com/v1/groups/{id}/posts?count=5&start=1

<cfscript> 
    var l = {}; 
    //The LinkedIn public and private keys for application 
    l.oauth_consumer_key = "[My public key]"; 
    l.oauth_sign_key = "[My secret key]"; 
    l.serviceBuilder = CreateObject("java","org.scribe.builder.ServiceBuilder"); 
    l.LinkedInApiClass = CreateObject("java", "org.scribe.builder.api.LinkedInApi").getClass(); 
    l.service = l.serviceBuilder.provider(l.LinkedInApiClass).apiKey(l.oauth_consumer_key).apiSecret(l.oauth_sign_key).callback("[My callback url]").build(); 
    l.requestToken = l.service.getRequestToken(); 
    l.authUrl = l.service.getAuthorizationUrl(l.requestToken); 

    // I NEED TO DEFINE WHAT TO DO AT THIS POINT TO SIGN THE REQUEST SERVER SIDE 
    ... 
    ... 
</cfscript> 
+0

振り返ってみると、このスレッドにはおそらくタイトルがついているはずです。_手動でLinkedIn accessTokenを作成するにはサーバー側_ – andrewjackson123

答えて

3

Kirstenは技術的に正しいです - リンクされたApiではユーザー認証が必要です。グループの投稿を取得するために認証する必要があるため、迷惑です。

しかし、それには方法があります。

スクライブでは、アクセストークンを手動で作成できます。

var accessToken = createObject("java", "org.scribe.model.Token").init(
       "singedTokenStringReturnBackFromLinkedIn", 
       "singedSecretStringReturnBackFromLinkedIn", 
       "oauth_token=singedTokenStringReturnBackFromLinkedIn&oauth_token_secret=singedSecretStringReturnBackFromLinkedIn&oauth_expires_in=0&oauth_authorization_expires_in=0" 
      ); 

あなたはその後、次のことができます。だから私はどうなるのか、リンクには上のダミーのユーザーアカウントを作成し、通常のように、そのユーザを認証し、その後、トークンを作成するために使用できる、データベース、に返さ署名した資格情報を保存で認証の部分をスキップして、現在のユーザーがサインインすることなく、グループの投稿を表示できるようにするAPIを呼び出す:これはかかわらでのT & Cをリンク違反する場合

var req = createObject("java", "org.scribe.model.OAuthRequest").init(
      createObject("java", "org.scribe.model.Verb").GET, 
      "http://api.linkedin.com/v1/groups/123456/posts" 
     ); 

oAuthService.signRequest(accessToken, req); 

私は見当がつかない。

+0

ありがとう@Bigfellahull。私はこれをやり終え、それは完全に働いた。私はダミーのアカウントを作成する必要はありませんでした。 APIキーを取得するためにLinkedInアプリを作成するときに使用したアカウントと同じアカウントを使用しました。 – andrewjackson123

2

OAuth認証がために設計されているグループのAPIを消費するために必要な呼び出しを行うことができるように、私は、サーバー側のコードのトークンに署名するために正しい方向に私を指すために誰かを必要としますユーザーは、サイト(この場合はLinkedIn)のログインを介してアプリケーションに許可を与えます。アプリケーションに対して自動的にユーザー許可を与えるようには設計されていません。

LinkedIn APIを使用するためのアクセストークンを取得するには、アプリケーションを代理するためのアクセス許可を与えるために、ユーザーをLinkedInに送信する認証フローの一部を含める必要がありますPIN(ユーザが入力する)またはアプリケーションへのコールバックを介した検証者トークン。

要するに、ユーザーがLinkedInサイトとやりとりすることなく、「サーバー側を認証」する方法はありません。

関連する問題