2016-05-19 1 views
1

私はKhan Academyと統合するためのアプリを作成していますが、学習者が行った課題をどのように解決するかを考えていますか?Khan Academyのチャレンジへのアクセスのための内部API

たとえば、私はログインしており、以下のプログラミングプレイリストでいくつかの課題を抱えています。

https://www.khanacademy.org/computing/computer-programming/programming

私はページ自体を見て、それが完了としてマークされた課題のいくつかは、ページ上しかしクロームデベロッパーコンソール自体がダウンしてその情報を引き出す任意のXHR API呼び出しを示さないことを示しています。

どのような内部的なAPIが必要なのか誰にもわかっています。

+0

なぜこれが投票されたのか分かりませんが、私が言うことができるのは、パブリックAPIで利用できないデータにアクセスするための内部APIを見ているとKhan Academy自身が言います。 –

答えて

1

私は/api/v1/user/progress_summaryが最善の策だと思います。私は、それがAPIエクスプローラに上場されていない理由はわからないんだけど、ここでは内部のドキュメントです:

Return progress for a content type with started and completed lists. 
Takes a comma-separated `kind` param, like: 
    /api/v1/user/progress_summary?kind=Video,Article 
and returns a dictionary that looks like: 
    {"complete": ["a1314267931"], "started": []} 

(あなたはまた、他の/api/v1/userルートに似kaidのようなユーザ識別子を、合格する必要があります。)これらのID個々のコンテンツ項目に関するさらに多くのデータが必要な場合は、トピックツリーAPIから得られるものと一致する必要があります。私が話す限り、これは話題のページで使用しているデータとまったく同じです。

+0

最終的には、APIへの認証された呼び出し、私が使用するエンドポイントは "/ api/v1/user/progress_summary?kind = Article、Scratchpad、Video、Exercise"であるので、kaidは必要ありません –

+0

PS:結果トピックツリーに100%一致しない場合は、トピックツリーに一致するように各結果の最初の文字を削除する必要があります。すなわち、["a1314267931"]は["1314267931"]にする必要があります –

0

調査の結果、内部APIが見つかりました。パスは下にあります。ユーザーのKAIDは、public/api/v1/usersコールから検索できます。 dt_startとdt_endは、進行状況を取得するために探している時間範囲です。

/api/internal/user/[USER KAID]/progress?dt_start=2016-05-13T22:00:00.000Z&dt_end=2016-05-21T00:00:00Z&tz_offset=120&lang=en&_=1463730370107 

これは今後誰かに役立つことを願っています。

+0

データで何をしようとしていますか?私は、/ progressがトピックページに表示されているものとまったく同じかどうかはわかりませんが、実際に何をしたいのかは、ユーザーが最近行ったことです。あなたが完了したすべてのものを望むなら、より良い別の呼び出しがあるかもしれません。 –

+0

私たちはユーザーの演習やビデオにパブリックAPIを使用しています。私たちは、ユーザーが何をしているのか、彼らが読んだ記事を見つけたいと思っています。残念なことに、その内部進歩の呼び出しは、挑戦だけを行います。あなたが完了したすべてのものを取得するAPIメソッドを知っているなら、それを答えに入れてもよろしいですか? –

関連する問題