0

現在、Facebookのファンページ(www.facebook.com.SSBMstream)を作成しており、静的なhtmlアプリを使用して、ユーザーがボタンを使用して視聴したいtwitch.tvストリームを選択できるセクションを作成しています。さらに一歩進んで、チャネルが「ライブ」であるかオフラインであるかに基づいてチャネルを一覧表示したいと思います。Twitchtv / Justintvには、まさにそのためのAPIがすでに設定されています(http://api.justin.tv/api/stream/list.json?channel=)。ここで、チャネル名をプラグインして「[]」を取得できます。それはライブではなく、もしそうなら、私が信じているのはJSONです。アレイ内の各チャネルを動的にチェックして、ライブかどうかを判断し、可能であれば、そのAPIの情報にアクセスして、タイトルなどを更新できるようにするにはどうすればよいですか?

編集:これが私のコードのくり抜かれたバージョンです(私が問題を抱えている部分のみ)デバッガーとして他のページから情報を返すようにしているので、それが機能しているかどうか(いつ/いつ)をテストできます。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function loadJSON()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
else
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4)
    {
    document.getElementById("div1").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","http://api.justin.tv/api/stream/list.json?channel=ignproleague",true);
xmlhttp.send();
}
</script>
</head>
<body>

<div id="div1"><h2>Just a test</h2></div>
<button type="button" onclick="loadJSON()">Change Content</button>

</body>
</html>
4

1 に答える 1

0

それは、単収縮が何が生きているか、何が生きていないかをどのように定義するかに依存します。申し訳ありませんが、私はtwitchのAPIにあまり詳しくありませんが、チャネルがライブでない場合に空の配列を返す場合は、単にチェックすることができますif (array.length == 0)

JSONオブジェクトが与えられた場合は、必要な適切な情報を操作するだけです。twitchがJSONオブジェクトをどのようにフォーマットするかは正確にはわかりませんが、ここに例を示します。このJSONオブジェクトを返したとしましょう:

var JSONobj = {
"channelName": "e-sports", "channelTheme: "Professional Gaming", "viewerCount": 100 
};

情報を取得するには、適切なフィールドを呼び出す必要があります。

var chan = JSONobj.channelName; //chan = "e-sports
var theme = JSONobj.channelTheme; //theme = "Professional Gaming"

お役に立てれば

編集:AJAXを理解するのに助けが必要なようです。構文が何であるかについて大まかに説明します。私は個人的にPrototype.jsと呼ばれるフレームワークを使用しています

new Ajax.Request(WEB_SERVICE, {
    method: "get",
    parameters: {"type" : type, "name" : name},
    onSuccess: successCall,
    onFailure: ajaxError,
    onException: ajaxError
});

これはかなり典型的なAJAXリクエストです。これが呼び出されると、AJAXリクエストがWEB_SERVICE(通常、渡されたパラメーターを取得し、そこから何かを計算するPHPドキュメント)にスローされます。このシナリオでは、渡されるメソッドは「GET」であり、渡されるパラメーターは、フィールド「type」および「name」を持つオブジェクトの形式です。successCallは、AJAXリクエストが正常に渡されたときに呼び出され、計算されたajaxを返すメソッドです。あなたのシナリオでは、AJAXがJSON形式で情報を受信する必要があると想定しているため、successCall関数はその情報を取得するだけでなく、JSONであるかのように解析します。successCall関数は次のようになります。

function successCall(ajax) {
    var info = JSON.parse(ajax.responseText);

うまくいけば、ここからあなたは何が起こっているのかをよく理解しているでしょう。これを使って作業してみてください。それでもヘルプが必要な場合は、コメントしてください。

ああ、私は他のコメントを見ませんでした。JSONオブジェクトを作成する場合は、次のように行うことができます。

var JSONobj = {};
JSONobj.field = something;

JSONオブジェクトは次のようになります。

JSONobj = { "field" : something };

JSONobjを文字列として渡す場合は、JSONobjを文字列化することが重要です。WEB_SERVICEがどのように処理しているかによると思いますが、このように行うことができます。

var stringJSON = JSON.stringify(JSONobj);

お役に立てれば。

于 2012-08-22T08:20:55.150 に答える