2014-07-16 60 views
1

我试图从我可以通过API访问的netatmo站获取数据。我在河中使用下面的代码通过Netatmo API获取数据R

myapp <- oauth_app("my_netatmo",key="my_netatmo_client_id",secret="my_netatmo_client_secret") 
ep  <- oauth_endpoint(authorize = "http://api.netatmo.net/oauth2/authorize",access = "http://api.netatmo.net/oauth2/token") 
sig_tok <- oauth2.0_token(ep,myapp, scope="read_station") 

#after that I get redirected to my browser to log in and after that sig_tok contains an access token 
sig  <- config(token = sig_tok) 
html_get<-GET("http://api.netatmo.net/api/devicelist",sig) 

html_get包含此:

html_get 
Response [http://api.netatmo.net/api/devicelist] 
    Status: 400 
    Content-type: application/json; charset=utf-8 
    {"error":{"code":1,"message":"Access token is missing"}} 

我是什么,因为 “SIG” 做错了,似乎包含令牌:

sig$token$credentials$access_token 
[1] "5**********************f|3**********************a" 

有两个令牌还是我错了(因为之间有“|”)?

回答

1

'|' access_token内部是其中的一部分,它只有一个访问令牌。

从文档:http://dev.netatmo.com/doc/methods/devicelist, 参数名称是:“access_token”。我不知道R语言,但似乎你发送的是“token”作为参数,而不是“access_token”。它可以解释这个问题。

+0

嗨Fabien,thanx的答案,所以我可以更专注于我使用的程序语言,并发现我必须构建“手动”而不是使用func config的url:json_get <-GET(paste( “http://api.netatmo.net/api/devicelist?access_token=”,sig_tok $ credentials $ access_token,sep =“”))现在它工作了! PS:回应的格式不是html格式 – mauwot

相关问题