2012-01-14 34 views
0

我试图运行一个调用Linkedin API的groovy脚本。问题是,我如何使用groovy脚本中的grails oauth插件进行身份验证? 这是我的配置:来自groovy脚本的grails oauth

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运行脚本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请求无效“

谢谢。

回答

0

看看http://code.google.com/p/oauth-signpost/wiki/TwitterAndSignpost

我下载了OAuthTwitterExample,并把被包含在压缩在我的工作目录公地编解码器-1.3.jar和路标核-1.1-SNAPSHOT.jar

为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 

在工作目录上的命令行中输入验证

常规-cp公地编解码器1.3.jar:路标核-1.1-SNAPSHOT.jar oauth.groovy

希望这有助于