サイトにGoogle+ストリームを公開する









Google+はまだ非常に若く、わずか1か月で成長し、人気を集めており、四角いスイカのように神秘的です。 開発者がどのように使用できるかは完全に理解できないが、という意味で。



現時点では、次のGoogle I / OでAPIがリリースされることがわかっています。 もう1年待つ必要があります。 現在、このような「新鮮さ」のサービスでは、安定したAPIを放棄することは不可能です。GoogleTakeoutからのみストリームを取得できるようになりました 。 ストリームをピックアップする「公式」な方法はありません。



しかし、ご存知のように、この新しいサービスを愛するオタクにとって不可能なことは何もありません。また、シャベルを手にした人は、ストリームを取得するのに十分な「非公式」なものをすでに掘り当てています。 たとえば、 PlusFeed Russel Beattieを使用すると、ユーザーのストリームをRSS形式で取得できますが、 コントロールがおかしい場合は、このソリューションは適していません。 したがって、私たちはストリームを自分で取ります。



そして、あなた自身でそれを行うことはかなり可能です-https : //plus.google.com/_/stream/getactivities/XXX/?sp=[1,2,,XXX>,null,null,null,null、 「Social.google.com」、[]]

XXXはあなたのプラスID( plus.google.com/meまたは他のユーザーのページのurl行に表示されるもの)です。



このアドレスで返されるデータは、わずかに処理するだけで済みます。先駆者がJsonを引き離さないように追加されたプレフィックスを削除し、最適化の痕跡を削除します。



結果は次のようになります。







学術的な観点からは、これを生成するコードは重要ではありません。ASP.NETMVCアプリケーションにラップされた通常のLINQクエリであり、その結果はjQueryテンプレートを使用してレンダリングされます。



ここで最も難しいことは、元のJsonで誰が誰であるかを把握することです。これは配列の山であり、フィールド名はありません!



たとえば、地理的位置データを取得するには、次のようにする必要があります。

GeoData = post[27].HasValues ? new { Name = post[27].Values().ElementAt(2).Value<string>(), Address = post[27].Values().ElementAt(3).Value<string>(), MapsUrl = post[27].Values().ElementAt(9) == null ? null : post[27].Values().ElementAt(9).Value<string>(), PlaceUrl = post[27].Values().ElementAt(10) == null ? null : post[27].Values().ElementAt(10).Value<string>(), MapImage = post[27].Values().ElementAt(11) == null ? null : post[27].Values().ElementAt(11).Value<string>() } : null, ...
      
      







明確にするために、GoogleのストリームインポートはHammock RESTライブラリを使用して実装され(後でOAuthを使用する必要がある場合に非常に便利です)、 Json.NET-その助けにより、元のJsonが解析され、本当に必要なものがLINQ to JSONから選択されますまあ、非常に広範なソース。 さらに、 jQueryテンプレートDatejsを使用してストリームをレンダリングします。



これがどのように見えるかの例は、 ここここで見ることができます (ハブラー効果に打たれるまで)。 実装のこの段階では、Webサイトへのリンク、メディアリソースのプレビュー、他の人の投稿からの引用、ジオロケーション/ Googleプレイスのチェックインが正しく表示されます。



この空白が多くの人に役立つことを願っています-あなたの好きな言語/ツールキットに簡単に書き直し、思い出させる/美的成熟させることができます。



ソース: narod.ru/disk/21224545001/gstream.rar.html



All Articles