プロジェクトの1つで、ビデオホスティングによって提供されるビデオを使用したいという要望がありました。 選択肢はyoutubeとsmotri.comにありました。 YouTubeについてはあまり書きませんが、YouTubeについてはあまり書きませんでした=)さらに、既製の実装もあります。
APIの使用を説明するサイト、
http://api.smotri.com/が主要なソースでした。 下記の記述されたクラス(ソースおよびコンパイル済み)へのリンク。 それまでの間、プロセスと印象の小さな説明。
それはすべて、他の多くの人と同様に、APIを操作するにはキーを取得する必要があるという事実から始まりました。 しかし、他の多くとは異なり、自動的に生成されませんが、サポートサービスに手紙を書く必要があります。 事件は金曜日の夜に行われたので、手紙を書くことで、私は月曜日まで待たなければならない可能性が高いことに気付きました。 したがって、私は今のところドキュメントを勉強することにしました。
ドキュメント
全体としての文書は明確で要点まであるように見えますが、詳細は、これらの部分は校正なしでコピーされたと述べています。 たとえば、メソッド「
smotri.videos.list.converting 」。 この名前は、変換中のユーザーの動画のリストを示唆しています。 説明は私の考えと一致せず、「チームは指定されたユーザーのすべてのビデオのリストを返します」と述べました。 パラメーターは、個人的な目的について独自の意見を持っているようでした。それ以外の場合は、パラメーターの説明方法「1から100までの類似のパラメーターの必要数」。 Tracに登録してサインアップし、新しいバグとその修正に遅れをとらないようにすると同時に、ドキュメントに関するいくつかのコメントを書きました。 月曜日までの残りの時間について、ドキュメントの明確な部分と常識に基づいて、将来の実装のスケルトンをスケッチしました。 提供された情報は明らかに十分ではありませんでしたが、ドキュメント内の場所には、APIで何ができるかについての大げさなフレーズがありました。 しかし、行方不明のチームの一部は常識で補充される可能性があり、一部はまだ十分ではなく、将来登場する可能性があります。
やった! キー!
月曜日、サポートサービスから、なぜキーが必要なのか、何を開発するのかを説明する手紙が届きました。 応答後、すぐに開発者の識別子とパスワードを受け取り、開発者から迅速な回答を受け取るためにtracに登録する提案を受け取りました。 文字は明らかにテンプレートですが、よく書かれていて、読みやすいです=)通信からの印象はポジティブです。
重要な点は、最初のテストを開始できることです。 パラメーターを操作してメソッド呼び出しの結果を確認できるページを見たかったのですが、何もありませんでした。 そのため、彼はディスク上にhtmlファイルを作成し、AJAXがリクエストを送信して結果を表示しました。 確かに、AJAXブラウザーがドメイン間の要求をブロックするという事実を考えると、IE6でテストする必要がありましたが、これについては気にしません。 その結果、このページはいくつかのエラーを見つけるのに役立ちました。 APIサイトでそのようなページを見るといいでしょう。
それから私はコードを書き、ドキュメントを読み、愚かな間違いについて自分自身をoldり、不完全な情報や間違った情報についてサイトをscりました。
どうした
結果は、このスタイルについてビデオを操作できるクラスのセットです。
//
SmotriComService service = new SmotriComService(devId, devPassword);
//
//
AuthService auth = service.getAuthService();
auth.startSession();
auth.authUser(userLogin, userPassword);
//
VideoService video = service.getVideoService();
//
List <Rubric> rubrics = video.getRubricList();
//
VideoSearchResults res = video.getTopVideoList(rubrics. get (0));
// ,
System. out .println( ": " + rubrics. get (0).getName());
// , =)
System. out .println( ":" +res.getVideos(). get (0).getTitle());
System. out .println( "URL:" +res.getVideos(). get (0).getUrl());
// ,
CommentsService comment = service.getCommentsService();
comment.addComment( "!" , res.getVideos(). get (0).getVideoId());
// =)
* This source code was highlighted with Source Code Highlighter .
欠陥の
- smotri.videos.list.convertingメソッドは実装されていません。 私はそれを理解できませんでした=)
- smotri.broadcast.rubric.listメソッドを実装しないでください。 放送を操作するための他のコマンドがなければ、私の意見では意味がありません
- ソースにはコメントがほとんどありません
- すべてのメソッドに対してテストが記述されているわけではないため、エラーが発生する可能性があります(何かあれば、記述して修正します)
- 長い説明を含むビデオが出会った場合、トップビデオを取得すると例外がスローされる可能性があります。 ここで私は無力です、なぜなら スモトリによる問題。 このエラーは修正されたと1週間前にtracで書かれましたが、新しいバージョンはサーバーに投稿されませんでした。
- いくつかのことは最も便利な方法で行われません。 トピックでサポートが見つかった場合-変更し、ドキュメントを作成し、新しいバージョンのサポートを実装します。
ファイル
ソース (
高速 ミラー、Yandexディスクミラー )、
コンパイル済みバージョン (
高速 ミラー、Yandexディスクミラー )。
依存関係:
log4j 、
HttpClientソースコードでの作業のデモ。 IDとパスワードをデモに挿入します。