2017-03-03 3 views
0

は、私は統合の専門家ではないです、あなたは私を助けることを願って:)R(HTTRパッケージ)でAPIを呼び出す

ソーシャルベーカーズ(DOC:https://api.socialbakers.com)と呼ばれるシステムがあり、私はいくつかのデータをフェッチしてみてください。私はトークン、秘密を持っています。私は最初の部分を正しくやっていると思います。

私はこのスニペットを使用して接続しようとしています:

library(httr) 

req <- GET("https://api.socialbakers.com/0/facebook/profiles", 
     authenticate("token", "secret", type = "basic")) 
stop_for_status(req) 
content(req) 

これは完璧に動作します。私はテーブルに解析することができるJSON応答を持っています。私がもしわからない

コード405 HTTPメソッド無効

を返し、

library(httr) 

req <- GET("https://api.socialbakers.com/0/facebook/metrics", 
     authenticate("token", "secret", type = "basic")) 
stop_for_status(req) 
content(req) 

同じコードは、もう動作しません: 私の質問は、このような別のURLについてです私は正しいことをしていますが、文書の一部はヘッダーにbase64を使用する必要があると言いますが、なぜ最初の部分で作業していますか?いくつかのアドバイスは本当に理解されるであろう:)

EDIT:

が解決を:その場合は、APIと対話するための正しい方法は、サービスにパラメータを送信するにはPOSTメソッドを使用しています。

次のスニペットを使用しました。

library(httr) 
library(RCurl) 
library(jsonlite) 

doc <- POST("https://api.socialbakers.com/0/facebook/metrics", 
     authenticate("user", 
        "pass", 
        type = "basic"), 
     body = list(
      date_start = "2016-01-11", 
      date_end = "2016-01-12", 
      profiles = c("12345", "123456"), 
      metrics = c("fans_count_lifetime", "fans_change")) 
     , encode = "json") 
stop_for_status(doc) 
content(doc) 

ありがとうございます。

+2

提供したリンクのドキュメントに従って、メトリックの要求には引数が必要です。彼らは[example request](https://api.socialbakers.com/#facebook-metrics)(右側)を持っています。 – r2evans

答えて

0

この場合、APIとやり取りする正しい方法は、POSTメソッドを使用してパラメータをサービスに送信することです。

次のスニペットを使用しました。

library(httr) 
library(RCurl) 
library(jsonlite) 

doc <- POST("https://api.socialbakers.com/0/facebook/metrics", 
    authenticate("user", 
       "pass", 
       type = "basic"), 
    body = list(
     date_start = "2016-01-11", 
     date_end = "2016-01-12", 
     profiles = c("12345", "123456"), 
     metrics = c("fans_count_lifetime", "fans_change")) 
    , encode = "json") 
stop_for_status(doc) 
content(doc)enter code here