Xcodeを更新したらsyntax coloring(code highlight)やauto-complete(code hint)が動かない、作業用インデックスに追加されていないぽい。
まず以下を試す。organizerでderiveddataを削除、他ユーザのworkspace情報なども削除。
http://stackoverflow.com/a/8165886
それでもダメで、しょうがなくProject, Targetの情報をひとつずつチェックしてったら、どうやらProject->Targets->Build Phases->Compile Sourcesに新しいファイルが含まれていないのが原因だったようだ。新規ファイル作成時にこれまではチェックされていたはずのTargetsがはずれていた。
これをチェックしてファイルを新規作成ことで問題は解消された(既存ファイルの場合はCompile Sourcesに直接mファイルを追加)
とても無駄な時間だった…。
2013年6月21日金曜日
2013年6月10日月曜日
勉強会ログ: 6月7日(金) (Twitter) API 勉強会/API1.0告別式 @恵比寿 @engineyard_jp #apihack
2013.6.7
第9回
次回以降の予定
・PaaS API
・ヘルスケアデバイス系API Nicke+とか
・地理系API GEO系
・決済系API
■twitter API1.1
・Twitterエコシステムの定義
・いわゆるtwitterクライアントは自社で出すので作って欲しくない
・”クライアント”の定量的な判断基準はない
・今後新規のいわゆるクライアントはもう無理(ユーザ10万に限るなど…)
・ポイントはtwitterにとって有益になるかどうか
・ディベロッパ利用規約変更
・表示形式の指定がrequiredに
・タイムラインのレンダリングは、twitterのタイムラインであることがわかるように
・twitterの鳥を配置
・API1.0 -> 1.1
・endpointの変更
・単純なURLプリフィクスの変更
・xml廃止、jsonのみに
・廃止されるエンドポイント(public_timeline, retweet関連など)
・レートリミット方式変更
・1.0:1アカウント350回/1時間、1.1:1エンドポイント15回/15分・多く使われるものは180回/15分 (いずれもOAuth必須)
・OAuth必須に
・1.0:一部は150回/1時間でOAuthなしで呼び出し可能、1.1:全て必須
期限
・1.0は、3/5>6/11に廃止(at SF time)
移行
・twitter4j(Java):バージョン3.0.xに切り替え>コンパイルエラーをつぶす
・他言語:エンドポイントのバージョン部分を1から1.1にかえてエラーをつぶす
■Twitter Cards
・tweetにメタ情報、付加情報を埋め込む為の仕様
・140文字以外の文章として出してくれる
・例:webページURLをはるとそのページのアイコンが自動で表示
・例:SlideShare、tweet内にスライド
方法
・webページにmetaタグで埋め込む
・twitter:card, summary photo, player
Twitter CardsとOpen Graph
・twitter cardsはopen graphがベースになっており、だいたい一緒
・基本のメタ情報(url, title, description, image...)はopen graphを設定しておけばtwitter cardsとして表示される(twitter:cardは必要)
事前申請が必要
・open graphは普通は不要(Facebookなど)
・twitterの申請ページからフォーム入力して申し込み
・期間は数日から2週間くらい(申請確認メールに返信すればチケット作られるのでやってくれるはず)
・何故必要なのか
・tweetが多いので全URLに反応してクロールするのは高コストなため事前申請(ほぼ登録みたいな感じ?)にしている
>webを展開するなら、Twitter Cardsは対応しておいた方が良さそう。tweetへの追加情報の表示は魅力的
■なんとなくわかってきたtwitter APIとのつきあい方(小宮さん)
・twitter4jを使ってツイートをDBに蓄積するにあたって、実際のなま情報
・仕様と違うとか
・注意するポイント6点
1)アプリケーションの登録に注意する
・WebSite:twitter.comドメインとかいれといてAPIをはげしくつかうと、アプリケーションのstatusがsuspendedになって、アプリケーションも削除できずどうにもできなくなる
2)絵文字に負けない
・絵文字(UTF-8外字)を含むテキストをVARCHAR(140)に保存すると文字数オーバ
・絵文字を保存する際は、MySQLならcharsetをutfmb4にする必要があり、絵文字1文字につき4文字分消費するので、560にする必要がある
3)NULL文字に負けない
・時々tweetにNULL文字が紛れ込むことがある
・NULLは除外する方がよい
4)NFD/NFKDに負けない
・UNICODE正規化:発音記号等を1バイト文字2文字で表現するような分解
5)ユーザが常に存在するとは限らない
・search/tweetsのstatus["user"]が存在しないことがある
6)screen_nameが15文字であるはずがない
・サイトには15文字と書いてあるが、過去に20文字許されてた時期があった。
■家族フォト
MVP(mininum valuable product)
・最小構成でサービスをリリースする
・その後仮説と検証を経てよりよいものにつくってく
ベネッセとデジタルガレージの協業
・2ヶ月でweb, iOS, Android向けアプリを出さなきゃなかった
・APIは自社json(HTTPS)、bgはappEngine
・appEngineではSSLを使う際、金払った実績がないと利用できない制約がある
・appEngine:dbモジュールからndbモジュールに変更:modelで定義してるものは自動でmemcacheでキャッシュを利用してくれる
・スマホアプリは基本APIをたたく。
・PhoneGapを使った(iphone4あたり少しもっさりだが、一般のユーザはそんな気にしない)
・sharp端末で不具合頻発、あとandroidでは画像の保存ディレクトリが端末によって違ったりした
・phonegapはhtml+css+jsで開発しやすかった
仮説と検証
・DL当日しか使ってないユーザは30〜40%
・週1以上起動ユーザは約半数
■Acitivity body (fitbit API)(朝倉さん)
・アクティビティトラッカー
fitbit feature
・歩数
・移動距離
・消費カロリー
・上位機種は、階段上り下りや睡眠時間なども記録可能
Fitbit API(json or xml)
・userinfo
・body measurements(体組織:体重、慎重)
・Activities(歩数とか)
・利用
・要ディベロッパー登録
Third party libs
・ruby, php, .net, java
■飯テロのススメ(美馬さん)
・twitter日本語で、一番つぶやかれる時間は0時
・おやすみが一番いわれるのは23:50分くらい
■Application-only authentication
・ユーザの認可を必要とせずに、twitter APIにアクセスできるようになる認可方式
・tweet投稿や、フォロー等の操作に依存するAPIは使用できない
・一部APIのレートリミットは大きく緩和されている。search/tweetsは+270回、friends/list・folloowers/listは+15回
twitter4jでの実験的な利用方法
・OAuthコンシューマーキーを作る
・twitter4j.propertiesを編集する:consumerkey, consumersecretの設定、useSSL=true(3.3.4以前)、enableApplicationOnlyAuthentication=trueにする
・twitter.getOAuth2Token();を呼び出すとA-oAが適用になる
■だれとくアプリからSNS活用への道(佐藤さん)
・秋葉の雁川という中華料理屋のアプリ
・そのおすすめアプリサービス(androidアプリ)
・twitter, Facebook, mixi, forsquareへ同時投稿や行ったときのチェックインを一括で行うアプリ
・twitter ->twitter4j, forsquare->forsuqare-api-java
・mixi, facebook ->SDKが多機能だったので独自に利用部分だけ実装
・公開後1年たったら公式アカウントからキャンペーンに使いたいという連絡が来た>杏仁豆腐おごってもらった。
その他メモ
・twitterのAPIが1.1になって、tweetを集めるのはやりやすくなったが、フォロワー関係を取得しづらくなっている
・3時間で128ツイート、1日に1024ツイートで規制。メンションしまくりでsuspended
第9回
次回以降の予定
・PaaS API
・ヘルスケアデバイス系API Nicke+とか
・地理系API GEO系
・決済系API
■twitter API1.1
・Twitterエコシステムの定義
・いわゆるtwitterクライアントは自社で出すので作って欲しくない
・”クライアント”の定量的な判断基準はない
・今後新規のいわゆるクライアントはもう無理(ユーザ10万に限るなど…)
・ポイントはtwitterにとって有益になるかどうか
・ディベロッパ利用規約変更
・表示形式の指定がrequiredに
・タイムラインのレンダリングは、twitterのタイムラインであることがわかるように
・twitterの鳥を配置
・API1.0 -> 1.1
・endpointの変更
・単純なURLプリフィクスの変更
・xml廃止、jsonのみに
・廃止されるエンドポイント(public_timeline, retweet関連など)
・レートリミット方式変更
・1.0:1アカウント350回/1時間、1.1:1エンドポイント15回/15分・多く使われるものは180回/15分 (いずれもOAuth必須)
・OAuth必須に
・1.0:一部は150回/1時間でOAuthなしで呼び出し可能、1.1:全て必須
期限
・1.0は、3/5>6/11に廃止(at SF time)
移行
・twitter4j(Java):バージョン3.0.xに切り替え>コンパイルエラーをつぶす
・他言語:エンドポイントのバージョン部分を1から1.1にかえてエラーをつぶす
■Twitter Cards
・tweetにメタ情報、付加情報を埋め込む為の仕様
・140文字以外の文章として出してくれる
・例:webページURLをはるとそのページのアイコンが自動で表示
・例:SlideShare、tweet内にスライド
方法
・webページにmetaタグで埋め込む
・twitter:card, summary photo, player
Twitter CardsとOpen Graph
・twitter cardsはopen graphがベースになっており、だいたい一緒
・基本のメタ情報(url, title, description, image...)はopen graphを設定しておけばtwitter cardsとして表示される(twitter:cardは必要)
事前申請が必要
・open graphは普通は不要(Facebookなど)
・twitterの申請ページからフォーム入力して申し込み
・期間は数日から2週間くらい(申請確認メールに返信すればチケット作られるのでやってくれるはず)
・何故必要なのか
・tweetが多いので全URLに反応してクロールするのは高コストなため事前申請(ほぼ登録みたいな感じ?)にしている
>webを展開するなら、Twitter Cardsは対応しておいた方が良さそう。tweetへの追加情報の表示は魅力的
■なんとなくわかってきたtwitter APIとのつきあい方(小宮さん)
・twitter4jを使ってツイートをDBに蓄積するにあたって、実際のなま情報
・仕様と違うとか
・注意するポイント6点
1)アプリケーションの登録に注意する
・WebSite:twitter.comドメインとかいれといてAPIをはげしくつかうと、アプリケーションのstatusがsuspendedになって、アプリケーションも削除できずどうにもできなくなる
2)絵文字に負けない
・絵文字(UTF-8外字)を含むテキストをVARCHAR(140)に保存すると文字数オーバ
・絵文字を保存する際は、MySQLならcharsetをutfmb4にする必要があり、絵文字1文字につき4文字分消費するので、560にする必要がある
3)NULL文字に負けない
・時々tweetにNULL文字が紛れ込むことがある
・NULLは除外する方がよい
4)NFD/NFKDに負けない
・UNICODE正規化:発音記号等を1バイト文字2文字で表現するような分解
5)ユーザが常に存在するとは限らない
・search/tweetsのstatus["user"]が存在しないことがある
6)screen_nameが15文字であるはずがない
・サイトには15文字と書いてあるが、過去に20文字許されてた時期があった。
■家族フォト
MVP(mininum valuable product)
・最小構成でサービスをリリースする
・その後仮説と検証を経てよりよいものにつくってく
ベネッセとデジタルガレージの協業
・2ヶ月でweb, iOS, Android向けアプリを出さなきゃなかった
・APIは自社json(HTTPS)、bgはappEngine
・appEngineではSSLを使う際、金払った実績がないと利用できない制約がある
・appEngine:dbモジュールからndbモジュールに変更:modelで定義してるものは自動でmemcacheでキャッシュを利用してくれる
・スマホアプリは基本APIをたたく。
・PhoneGapを使った(iphone4あたり少しもっさりだが、一般のユーザはそんな気にしない)
・sharp端末で不具合頻発、あとandroidでは画像の保存ディレクトリが端末によって違ったりした
・phonegapはhtml+css+jsで開発しやすかった
仮説と検証
・DL当日しか使ってないユーザは30〜40%
・週1以上起動ユーザは約半数
■Acitivity body (fitbit API)(朝倉さん)
・アクティビティトラッカー
fitbit feature
・歩数
・移動距離
・消費カロリー
・上位機種は、階段上り下りや睡眠時間なども記録可能
Fitbit API(json or xml)
・userinfo
・body measurements(体組織:体重、慎重)
・Activities(歩数とか)
・利用
・要ディベロッパー登録
Third party libs
・ruby, php, .net, java
■飯テロのススメ(美馬さん)
・twitter日本語で、一番つぶやかれる時間は0時
・おやすみが一番いわれるのは23:50分くらい
■Application-only authentication
・ユーザの認可を必要とせずに、twitter APIにアクセスできるようになる認可方式
・tweet投稿や、フォロー等の操作に依存するAPIは使用できない
・一部APIのレートリミットは大きく緩和されている。search/tweetsは+270回、friends/list・folloowers/listは+15回
twitter4jでの実験的な利用方法
・OAuthコンシューマーキーを作る
・twitter4j.propertiesを編集する:consumerkey, consumersecretの設定、useSSL=true(3.3.4以前)、enableApplicationOnlyAuthentication=trueにする
・twitter.getOAuth2Token();を呼び出すとA-oAが適用になる
■だれとくアプリからSNS活用への道(佐藤さん)
・秋葉の雁川という中華料理屋のアプリ
・そのおすすめアプリサービス(androidアプリ)
・twitter, Facebook, mixi, forsquareへ同時投稿や行ったときのチェックインを一括で行うアプリ
・twitter ->twitter4j, forsquare->forsuqare-api-java
・mixi, facebook ->SDKが多機能だったので独自に利用部分だけ実装
・公開後1年たったら公式アカウントからキャンペーンに使いたいという連絡が来た>杏仁豆腐おごってもらった。
その他メモ
・twitterのAPIが1.1になって、tweetを集めるのはやりやすくなったが、フォロワー関係を取得しづらくなっている
・3時間で128ツイート、1日に1024ツイートで規制。メンションしまくりでsuspended
登録:
投稿 (Atom)