Grails OAUT из заводной сценарий - PullRequest
0 голосов
/ 14 января 2012

Я пытаюсь запустить отличный скрипт, который вызывает API Linkedin. Вопрос в том, как мне выполнить аутентификацию с помощью плагина grails oauth из скрипта groovy? Это мой конфиг:

oauth {
    linkedin {
        requestTokenUrl="https://api.linkedin.com/uas/oauth/requestToken"
        accessTokenUrl="https://api.linkedin.com/uas/oauth/accessToken"
        authUrl="https://www.linkedin.com/uas/oauth/authenticate"
        consumer.key="xxxxxxxxx"
        consumer.secret="xxxxxxxxxx"
    }     
}   

Это мой скрипт, который я начинаю с "grails run-script scriptname.groovy":

import org.grails.plugins.oauth.OauthService
def oauthService = new OauthService()
oauthService.reset()
def URL = "http://api.linkedin.com/v1/people-search?country-code=us&postal-code=98102&distance=100&start=0&count=5"
def recs_response = oauthService.accessResource( URL, "linkedin", [key:"xxxxxxx", secret:"xxxxxxxxx"], 'GET')

println "it worked"

Если я распечатываю ответ, я получаю «Токен, использованный в запросе OAuth, недействителен»

Спасибо.

1 Ответ

0 голосов
/ 29 декабря 2012

Взгляните на http://code.google.com/p/oauth-signpost/wiki/TwitterAndSignpost

Я скачал OAuthTwitterExample и поместил commons-codec-1.3.jar и signpost-core-1.1-SNAPSHOT.jar, которые были включены в zip, в мой рабочий каталог

для flickr OAuth Я использовал следующее в oauth.groovy

import oauth.signpost.OAuth;
import oauth.signpost.OAuthConsumer;
import oauth.signpost.OAuthProvider;
import oauth.signpost.basic.DefaultOAuthConsumer;
import oauth.signpost.basic.DefaultOAuthProvider;
import oauth.signpost.signature.SignatureMethod;

def consumer = new DefaultOAuthConsumer('<API KEY>','<Signature>',  
SignatureMethod.HMAC_SHA1)

def provider = new  
DefaultOAuthProvider(consumer,"http://www.flickr.com/services/oauth/request_token",                                  
"http://www.flickr.com/services/oauth/access_token",                                         
"http://www.flickr.com/services/oauth/authorize");

String url =provider.retrieveRequestToken( OAuth.OUT_OF_BAND);
println "navigate to the following URL"
println url

введите это в командной строке в рабочем каталоге

groovy -cp commons-codec-1.3.jar: signpost-core-1.1-SNAPSHOT.jar oauth.groovy

надеюсь, это поможет

...