Posts Tagged “github”

Google Analytics APIのエラー。v2.3からv3移行手順。OAuth2対応とxmlからJSONへ

by codechord. 0 Comments

md_reporting
Google Analytics API v2.3のサポートが2015年5末頃に終了したみたいで、動かなくなっちゃったアプリケーションがあったので、2015年6月時点の最新であるv3に対応させないと行けないということで、書き記します。

次のようなエラーで引っかかった人のための記事です。

User does not have any Google Analytics Account.
Failed to authenticate user.

GA api v3で何が変わった

個人的に思うのは、大きく次の3つ。

  • OAuth2.0対応の必須
  • XML形式⇒JSON形式
  • リクエスト先のURLの変更

この中で特に大きいのはOAuth2への対応。
これまではEmailとPasswordで接続できてましたけど、APIキーを発行して、Analyticsの設定もかえないといけなくなった。プログラム側の修正はその後の話。

OAuthの対応の準備

手順としては、次の通り

  1. APIキーを発行
  2. Google Analyticsの管理画面で追加設定
  3. アプリ側の仕様変更へ対応。
    • OAuth対応(手順1で生成されたメールアドレスや鍵を利用。)
    • JSON形式に対応させるか、xml形式にフォーマットし直す。

[1,2]の手順は、こちらのページで詳しく書かれてますので、詳しくは割愛。
「Google Analytics API v3をPHPから利用する方法 | karakaram-blog」

[3]については、「Data export API」っていうものから「Analytics Core Reporting API」に代わるわけなんだけど、移行させるだけなので、APIの名称なんてどうでも良いです。
一応ドキュメントのリンクを。ちゃんと読みましょう。

コードの修正

さて、準備が整ったところで、実装を。
これから新規でv3アプリ作る人なんかは、composerなんかでよさそうなlibraryで対応したら良いと思います。
今回はcomposer使えない環境だったので手軽なライブラリを探したところ、「GAPI」なるものが良さ気で使った。
OAuth2がとても簡単。

githubのReadmeにあるサンプルの通りで簡単に動きます。簡単です。
https://github.com/erebusnz/gapi-google-analytics-php-interface
自分の場合、そのアプリ側がv2のxmlに最適化されてて、json形式用にフォーマット追加するのが面倒な環境だった。
移行の場合大体そう。
ライブラリ側で面倒みてくれば最高というわけで、このライブラリ側でv2のxml形式風に返すメソッド追加して、マージされるかはわからないけど、プルリクおくりましたという紹介。
https://github.com/tomothumb/gapi-google-analytics-php-interface/

とりあえず、僕のリポジトリつくったらxmlの文字列が返ってきます。
こんな感じです。

最後に使い方というかサンプルをば。ちなみに、xmlの文字列が返ってくるので、echo やver_dumpして、ブラウザ上で閲覧すると真っ白です。ソース表示にするとちゃんとxmlが出力されてるのがわかります。

たぶん、これで、xml前提のアプリとして実装されてた場合は移行がそこまで大変じゃなくなるのじゃないかな。もちろん、v3を活用するにはJSON用に作りなおすのがベストなんでしょうけどね。
ちなみに、v2のXML形式は、こちらのページを参考にしました。

(画像はGoogle Analytics APIのドキュメントページから拝借させていただきました。)

Git / Subversion用語コマンド比較

by codechord. 0 Comments

Github使い出したのはいいけど、Git自体の用語があんまりわかってなかったので、調べてみた。
せっかくなので、書き記します。

GitとSubversionの違いは

そもそもリポジトリとは、更新履歴が保存できる特殊な仕組みのディレクトリのようなもの。
SVNは単一、Gitは分散。(分散型はGitの他にMercurialやSVKでも使われている)

  1. Subversionの場合はリポジトリは1つ。各々が1つのリポジトリに対して更新。ローカルには特定バージョンが、ワーキングコピーとしてファイルが保存される。
  2. Gitの場合はリポジトリが分散。各自が持てる。(作業ディレクトリそのものが、ローカルリポジトリになる。)
  3. Gitの場合は、分散型なのでメインとなるマスタリポジトリが消滅しても安心。
  4. SVNだと、各フォルダに隠しフォルダ「.svn」が作成されてしまう。うっとおしい。
    Gitの場合は、親フォルダにのみ隠しフォルダ「.git」が作成される。
  5. SVNでできていた連番のリビジョン番号での管理がGitではできなくなる
  6. Gitはコミットはローカルリポジトリに対してだからスピーディ。
続きを読む »

README.mdファイル。マークダウン記法まとめ

by codechord. 9 Comments

つい先日から、ようやくgithubを使い始めました。
gitのことはあまり勉強してないので右も左もわからず、とりあえず、公開されてるレポジトリのクローンを作りまくってニヤニヤ閲覧しています。

で、そろそろ自分もリポジトリを作りたいなと思って、作り方を調べてたんですが、
README.md」ファイルというものの存在を知りました。

拡張子「.md」?何の事かさっぱりわからず、ドットモジュールって勝手に思ってたんですけど、全然違いました。「マークダウン」の略でした///

続きを読む »