drupal 7 withFeedsandFeedsJSONParserモジュールがインストールされていますが、これをフィードを解析するように構成する方法がわかりません。
次のフィードを独自のノードに解析したい: https://poloniex.com/public?command=returnTicker
{
"BTC_LTC": {
"last": "0.0237",
"lowestAsk": "0.02383797",
"highestBid": "0.0237",
"percentChange": "0.00642712",
"baseVolume": "5.69603109",
"quoteVolume": "240.78778654",
"isFrozen": "0"
},
"BTC_NXT": {
"last": "0.00007000",
"lowestAsk": "0.00007350",
"highestBid": "0.00007000",
"percentChange": "-0.06542056",
"baseVolume": "0.84850609",
"quoteVolume": "12014",
"isFrozen": "0"
},
"BTC_NMC": {
"last": "0.00403",
"lowestAsk": "0.00489",
"highestBid": "0.00404001",
"percentChange": "-0.04952830",
"baseVolume": "0.27214383",
"quoteVolume": "64.24716761",
"isFrozen": "0"
}
}
JSONparserの設定は次のとおりですが、何も実行しないようです。誰かがセットアップのスナップショットを撮るのに十分親切でしょうか?
他の誰かがインポートの設定方法に興味がある場合に備えて、チュートリアルでこのサイトを見つけました:
「コンテキスト」とタイトルのクエリに問題があると思います。私はこの構成を試し、私のために働いた。
コンテキストは最初のクエリで、この場合はすべてのノードを選択します。2番目のクエリはキーの値を取得し、「最後の」キーをノードのタイトルに付けます。
次に、他のクエリを試してノードを作成できますが、少なくともこれは機能します。
なぜそれをカスタムしないのですか?ここにあなたが始めるための例があります。サーバーでcronを1時間ごとに実行するように設定します。これにはエンティティAPIが必要です
/** implements hook_cron **/
function poloniex_cron(){
poloniex_get_feed();
}
function poloniex_get_feed(){
//Get the feed and turn it into json
$feed = file_get_contents("https://poloniex.com/public?command=returnTicker");
$feed_json = json_decode($feed);
foreach($feed_json as $item){
poloniex_create_node($item);
}
}
/**$item should be an array from the json feed**/
function poloniex_create_node($item){
//Create an instance of the node and wrap it
$node = entity_create('node', array('type' => 'content_type'));
$node_wrapper = entity_metadata_wrapper('node',$node);
//Set properties
$node_wrapper->author = 1; // Admin as the author
$node_wrapper->title->set("String"); //Title
$node_wrapper->field_name->set("String"); //Textfield
$node_wrapper->save();
}
問題は、JSONがノードに簡単にマッピングできるように構造化されていないことです。レコードがより似ていた場合:
"record": {"name": "BTC_LTC", "last": "0.0237", etc }
...はるかに簡単になります。その後、angoruの回答を使用して、$.name
BTC_LTCのような値の場合、タイトルにそれを入れます。
もう1つの問題は、個々のレコードとその名前を抽出するのに十分なJPathを習得するまでに、独自のFeedsパーサーを作成できたことです。 :-)
私は最近同様のことをしなければならず、テンプレートとして Feeds:Meetup を使用しました。