2012-03-15 16 views
5

का उपयोग करके लिंक्डइन समूह चर्चा पोस्ट पुनर्प्राप्त करना मुझे क्लाइंट द्वारा अनुरोध किया गया है कि वे अपने लिंक किए गए समूह से नवीनतम वेबसाइटों को हमारे वेबसाइट पृष्ठों में से एक में खींचें।कोल्डफ्यूजन

मैं कोल्डफ्यूजन 9 का उपयोग कर विकास कर रहा हूं और अब कुछ दिनों से इसका शोध कर रहा हूं और उम्मीद है कि कोई मेरी मदद करने में सक्षम होगा।

मैं उस बिंदु पर जा सकता हूं जहां मेरे पास अनुरोध है। मेरी समझ यह है कि अब मुझे एक्सेस टोकन प्राप्त करने के लिए अनुरोध टोकन पर हस्ताक्षर करने की आवश्यकता है। मेरी समस्या यह है कि मुझे इसे पीछे के दृश्यों को करने की ज़रूरत है। हालांकि, मेरे द्वारा प्राप्त किए जा सकने वाले सभी उदाहरण उपयोगकर्ता को प्रमाणीकृत करने की अनुमति देने के लिए फ्रंट-एंड उपयोगकर्ता को प्राधिकरण 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

पीछे की ओर, मुझे शायद इस धागे का शीर्षक दिया जाना चाहिए _ मैन्युअल रूप से एक लिंक्डइन एक्सेस बनाने के लिए कैसे टूटे सर्वर-साइड_ – andrewjackson123

उत्तर

3

कर्स्टन तकनीकी रूप से सही है - एपीआई में लिंक्ड उपयोगकर्ता प्रमाणीकरण की आवश्यकता है। यह कष्टप्रद है क्योंकि आपको समूह पदों को पुनर्प्राप्त करने के लिए प्रमाणित करने की आवश्यकता है।

हालांकि इसके आसपास के तरीके हैं।

लेखक के साथ आप मैन्युअल रूप से एक्सेस टोकन बना सकते हैं।

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" 
      ); 

तब आप: तो मैं क्या कर सकता, लिंक्ड में पर एक डमी उपयोगकर्ता खाता बनाने के रूप में सामान्य है कि उपयोगकर्ता को प्रमाणित करने और अपने डेटाबेस है, जो आप तो टोकन बनाने के लिए उपयोग कर सकते हैं पर लौट आए पर हस्ताक्षर किए प्रमाणिकता को सहेजने है प्रमाणित हिस्सा छोड़ सकते हैं और एपीआई आप वर्तमान उपयोगकर्ता में साइन इन किए बिना समूह पदों प्रदर्शित करने की अनुमति फोन:

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

धन्यवाद @ बिगफेलहुल। मैंने ऐसा करने का अंत किया और यह पूरी तरह से काम किया। हालांकि मुझे एक डमी खाता बनाने की जरूरत नहीं थी। मैंने एपीआई कुंजी प्राप्त करने के लिए लिंकडइन ऐप बनाने के लिए उपयोग किए जाने वाले एक ही खाते का उपयोग किया था। – andrewjackson123

2

OAuth प्रमाणीकरण के लिए डिज़ाइन किया गया है का उपभोग करने के लिए आवश्यक कॉल कर सकते हैं उपयोगकर्ता साइट पर लॉगिन के माध्यम से आवेदन करने की अनुमति देने के लिए (इस मामले में LinkedIn)। यह आपके लिए आपके आवेदन के लिए उपयोगकर्ता को अनुदान अनुमति देने के लिए डिज़ाइन नहीं किया गया है।

लिंक्डइन एपीआई का उपयोग करने के लिए एक्सेस टोकन प्राप्त करने के लिए, आपको प्रमाणीकरण प्रवाह का हिस्सा शामिल करना होगा जो उपयोगकर्ता को आपकी ओर से कार्य करने की अनुमति देने के लिए लिंक्डइन में भेजता है, जिस बिंदु पर आप पुनर्प्राप्त कर सकते हैं या तो पिन के माध्यम से एक सत्यापनकर्ता टोकन (जो उपयोगकर्ता इनपुट) या आपके आवेदन के लिए कॉलबैक के माध्यम से।

संक्षेप में, उपयोगकर्ता को LinkedIn साइट के साथ इंटरैक्ट किए बिना "सर्वर-साइड प्रमाणीकृत" करने का कोई तरीका नहीं है।

संबंधित मुद्दे