2015年6月5日金曜日
TwitterAPIキー大量制限事件で思った事
その日は突然訪れたわけですよ。
まずは簡単に時系列の整理
2015年4月16日
ShootingStarMod-MoonStrikeでのツイート、RT、ふぁぼ等のいわゆる書き込みが不可能に
他のクライアントへ流れるがそこまで大事にならず
2015年4月20日
16日の件に関連してAPI関連で仕様と制限を理解してほしいと願って記事を書く
2015年5月25日
びよーんったーの書き込み権限が剥奪されツイートができなくなるという事態に、また一部バージョンは凍結状態へ
大量に他のクライアントへ人が流れあれやこれやが無いの意見が大量にあったが
このときはこんな大事になるとは思わなかったのは言うまでもない
2015年5月26日~30日
ユーザーが流れ込んだ他のクライアントが次々と書き込み権限を剥奪される事態に
またそれらの被害にあったクライアントのレビュー欄が大炎上する。
あるクライアントの権限剥奪をネタにアフィリエイトサイトが取り上げる。
開発者のTwitterアカウントに大量の質問リプライ届く。
Androidのアプリに対しての制限が多かったのでリンゴ信者の仕業という噂も流れる。
また多くの開発者が異議申しだてのメールを送信する。
30日あるアプリの権限が剥奪されたのをきっかけに、じみったーへも人が流れ込みだし焦る。
2015年6月1日~2日?
このあたりでTwitter社から返信がきた開発者がちらほら
しかし、本文中身は定型文。反論メールを送る人が居ないわけない。
またこの日までにアプリを逆コンパイルされAPIキーを差し替えたうえに配布されたクライアントもある。
2015年6月3日
ほとんどのクライアントの制限が解除される。
が・・・・この日までに開発者に与えたダメージは計り知れない
ここから言いたいこと言う、ちょっとキツイ目な言葉も使うのでこの先は覚悟してください。
2015年4月20日月曜日
非公式クライアントを使うユーザー「だからこそ知ってほしい」Twitterの制限とか仕様
非公式のクライアントを使っているとよくタイムラインが更新できなくなったり、投稿できなくなったりしますよね。今回は知っているようで知られていないTwitterのAPI制限について
2015年2月23日月曜日
自作Twitterクライアント作成の記録(32)(じみったーだけに)地味にソース公開しました
すっごい今更感しますが作成中のTwitterアプリのソース公開します
各リンクは下の欄からどうぞ
なお旧版と新板の違いについてですが、旧版は2015年2月23日現在公開されてるアプリのソースになり、新板はそれのソースを書き直してるだけです。(ついでに機能追加してたり)
また新板の方へソースをコミットしていく形になるので気になる方はちょくちょく確認してみるといいかも。
また、こういうふうにしたほうがいいよとかアドバイスがあれば何かしらの手段で教えてもらえると嬉しいです。
(旧版)
https://bitbucket.org/meronmks/oldzimittaproject/src
(新板)
https://github.com/meronmks/zimitta
各リンクは下の欄からどうぞ
なお旧版と新板の違いについてですが、旧版は2015年2月23日現在公開されてるアプリのソースになり、新板はそれのソースを書き直してるだけです。(ついでに機能追加してたり)
また新板の方へソースをコミットしていく形になるので気になる方はちょくちょく確認してみるといいかも。
また、こういうふうにしたほうがいいよとかアドバイスがあれば何かしらの手段で教えてもらえると嬉しいです。
(旧版)
https://bitbucket.org/meronmks/oldzimittaproject/src
(新板)
https://github.com/meronmks/zimitta
2015年2月5日木曜日
Twitter4Jであるエラーに悩まされた件
どうも、最近色々手を出してよくわからないことになりかけてる私です
UserStreamAdapterを継承したクラスからViewを弄ってもエラーを吐かない。
先日Android端末をbotサーバーにするというふざけた構想のアプリを組んでるさい詰まった事柄をまとめておきます。
どういうことかというとこのクラス自動的に非同期的な処理になります。ある程度組んだことがある人ならわかると思うんですがこういう場合ちょっと工夫しないとエラーで落ちてしまうんですが、これを継承したクラスでは落ちない上に処理がそこで強制的に止まってしまいます。
何もエラーが出ないため厄介なタイプのバグだと思われます。
Handlerとかを使ってあげたら解決するはずです。
FATAL EXCEPTION: Twitter4J Async Dispatcher[0]
こちらは厄介なもので出る原因は結局わからずじまいでしたが、出ないようにすることは可能でした。回避法としては、ActivityのonCreateタイミングでRESTAPIを使用するもの何かを使う。
こうすると多分おそらく落ちません、多分・・・・
以上最近になって詰まった2点でした
2015年1月27日火曜日
自作Twitterクライアント作成の記録(31)たまには趣向を変えて
進行に本当に詰まったときは別のことをするのが一番!
と思ってますがどうですかね?
というわけで久々にC#コンパイラを立ち上げちょっとした小物(ただしTwitter関連)を作ってみることに。
一応目的としては通知だけに機能を絞ったクライアントを作ることにしました。
使用ライブラリはCoreTweet
インストール方法は割愛しますがVS2013であればNuGetから簡単にインストールすることが可能です。(ちなみにやりたいものによってはそれに関連した別ライブラリをNuGetからインストールする必要がある)
さらには常駐アプリ化し、いろいろやって作成開始約2時間でここまできました
察しの良い方はわかると思いますがこれただTLをバルーン形式で通知させているだけです。
ここからある程度自分で使えるようには仕上げないとな・・・・
と思ってますがどうですかね?
というわけで久々にC#コンパイラを立ち上げちょっとした小物(ただしTwitter関連)を作ってみることに。
一応目的としては通知だけに機能を絞ったクライアントを作ることにしました。
使用ライブラリはCoreTweet
インストール方法は割愛しますがVS2013であればNuGetから簡単にインストールすることが可能です。(ちなみにやりたいものによってはそれに関連した別ライブラリをNuGetからインストールする必要がある)
さらには常駐アプリ化し、いろいろやって作成開始約2時間でここまできました
察しの良い方はわかると思いますがこれただTLをバルーン形式で通知させているだけです。
ここからある程度自分で使えるようには仕上げないとな・・・・
2014年11月22日土曜日
自作Twitterクライアント作成の記録(30)Fragmentが想像以上に厄介だった件(解決)
AndroidでTabを使ったビューを作るときに推奨されてるFragment
一応2.2でも動くように目標を定めsupportv4ライブラリを使用して実装をし
(ちょっと古い画像だけど)
こんな感じに一応タブを作ったわけなんですよ。
ただこの後とあることでこのFragment(正確にはListFragment)が厄介なものだと知ることになりました。
そのあることとは
getLiatView()が使えない
どういうことなのかv4ライブラリにあるgetListView()メソッドはListViewを返してくれません。そのせいでListViewに項目を追加して表示を更新するたびに一番上まで戻される糞な状態に。
そしてさらに謎なのが
結構v4でgetListView()が使えるという日本語記事ばかりだったんですよね。
無論その方法で生成してみてもダメだったわけで、現在完全に止まってしまってます。
頼りの英語での記事も使えるって記述と使えないって記述が混在していてどうにもならない状態です。
おそらく3.0で追加されたものなのでそれと混じってるかどうにかしたらv4ライブラリのgetListView()でも取得できるのかもしれませんがこのままだとある意味の詰みです。
どうにかしてv4ライブラリでgetListViewが使用できる方法とかないんですかね?
追記
解決しました。
どうやらonActivityCreated()をオーバーライドしてそこでアダプターの作成とgetListViewを行うとちゃんと取得できるみたいです。
ほんとこんなややこしいのほんとありがとうございました(
一応2.2でも動くように目標を定めsupportv4ライブラリを使用して実装をし
(ちょっと古い画像だけど)
こんな感じに一応タブを作ったわけなんですよ。
ただこの後とあることでこのFragment(正確にはListFragment)が厄介なものだと知ることになりました。
そのあることとは
getLiatView()が使えない
どういうことなのかv4ライブラリにあるgetListView()メソッドはListViewを返してくれません。そのせいでListViewに項目を追加して表示を更新するたびに一番上まで戻される糞な状態に。
そしてさらに謎なのが
結構v4でgetListView()が使えるという日本語記事ばかりだったんですよね。
無論その方法で生成してみてもダメだったわけで、現在完全に止まってしまってます。
頼りの英語での記事も使えるって記述と使えないって記述が混在していてどうにもならない状態です。
おそらく3.0で追加されたものなのでそれと混じってるかどうにかしたらv4ライブラリのgetListView()でも取得できるのかもしれませんがこのままだとある意味の詰みです。
どうにかしてv4ライブラリでgetListViewが使用できる方法とかないんですかね?
追記
解決しました。
どうやらonActivityCreated()をオーバーライドしてそこでアダプターの作成とgetListViewを行うとちゃんと取得できるみたいです。
ほんとこんなややこしいのほんとありがとうございました(
2014年10月21日火曜日
自作Twitterクライアント作成の記録(29)アプリだけで連携解除がしたい
先日Twitterを何気なく見ていたら、PCを持っていない友人へ向けた連携解除の手順を示した画像が流れてきました。
そういえばアプリだけで連携解除が行えるようなものが無いなと思い、無いなら作ってしまうか
というわけでまずは完成品の画像をいくつか
そういえばアプリだけで連携解除が行えるようなものが無いなと思い、無いなら作ってしまうか
というわけでまずは完成品の画像をいくつか
2014年9月20日土曜日
自作Twitterクライアント作成の記録(28) リスト表示の対応
かなり前に実装していた機能ですが全くそれに関して触れていなかったことに気が付く今日この頃
完全に忘れないうちにメモとして残しておきたいと思います。
完全に忘れないうちにメモとして残しておきたいと思います。
2014年7月27日日曜日
自作Twitterクライアント作成の記録(27)Twitterクライアントを作るなら最初に見るべき項目
タイトルにはこう書いてますが、こいつの存在を知ったのはつい最近です。
実は少し前にニコニコで生放送しながら開発進めていると同じようにクライアント作ってる人が来たんですよ、無論いろいろ話をしていたんですが突然「Developer Display Requirements」
という単語が飛んできたわけですよ。
今回はその「Developer Display Requirements」(この先DDRと略します)についてのお話です。
実は少し前にニコニコで生放送しながら開発進めていると同じようにクライアント作ってる人が来たんですよ、無論いろいろ話をしていたんですが突然「Developer Display Requirements」
という単語が飛んできたわけですよ。
今回はその「Developer Display Requirements」(この先DDRと略します)についてのお話です。
・DDRとは何ぞ?
端的にいうとTwitter社によるクライアントにおけるツイートの表示の仕方の指針。
詳しいことは
Developer Display Requirementsが更新されたので再び訳してみた
か原文の
Developer Display Requirements
を見てもらうとして、つまりはクライアント作るならこれに準じてね?ってことですはい。(一応例外もあるらしい)
守らないとアプリケーションキーが剥奪されるとか、でも全部クリアしてるクライアントあまり見ないんだが・・・・・(あるにはある)
まあそれは置いておいて、一応DDRが設定されている目的としては
「使用環境の一貫性の確保」
みたいですが
そもそも公式のUIやシステムが気に入らないからクライアントをだn(ry
って文句いっても仕方ないね。
とにかく、クライアント作るなら一度は目を通しておくと幸せになるかも(ならないかも)
ということで今回はこの辺で
守らないとアプリケーションキーが剥奪されるとか、でも全部クリアしてるクライアントあまり見ないんだが・・・・・(あるにはある)
まあそれは置いておいて、一応DDRが設定されている目的としては
「使用環境の一貫性の確保」
みたいですが
そもそも公式のUIやシステムが気に入らないからクライアントをだn(ry
って文句いっても仕方ないね。
とにかく、クライアント作るなら一度は目を通しておくと幸せになるかも(ならないかも)
ということで今回はこの辺で
2014年7月11日金曜日
自作Twitterクライアント作成の記録(26)SDKのアップデートでちょっと困った件
どうも、ここ最近またこいつの開発にはまる私ですよ。
今回はSDKのアップデートで起きたちょっとしたことの解決法をメモしておきたいと思います。
今回はSDKのアップデートで起きたちょっとしたことの解決法をメモしておきたいと思います。
2014年7月9日水曜日
自作Twitterクライアント作成の記録(25)GooglePlayにアプリを置いてきた件
やったことはタイトル通りです、ついに一般公開してしまいました。
まだまだ機能は少ないですがこれから使える機能を増やした上にどんどん使いやすくできたらいいですね。
デベロッパコンソールからはこんな風に見えてます。
ここにDLカウンタが付く日はいつになるのやら。
と、報告はここまでにして、ちょっと公開する際に手間取ったことをいくつか忘れないうちにメモしておきます。
まだまだ機能は少ないですがこれから使える機能を増やした上にどんどん使いやすくできたらいいですね。
デベロッパコンソールからはこんな風に見えてます。
ここにDLカウンタが付く日はいつになるのやら。
と、報告はここまでにして、ちょっと公開する際に手間取ったことをいくつか忘れないうちにメモしておきます。
2014年7月6日日曜日
自作Twitterクライアント作成の記録(24)複数画像の扱いとツイート可能文字数の表示
ほんの少し前に私のフォロワーさんから複数画像の投稿に対応しないの?
というメッセージをいただいたのでさっそく実装してきました。
まず現状のライブラリで複数画像の投稿ができるのかと思い調べてみたら。
Twitter4Jで複数の画像をアップロードしてツイートする方法
という何ともドンピシャな内容が書かれたサイトにありつくことに。
これを見て思ったのは、どうやら一枚一枚アップロードしてから後でリンクを張るみたいな構造になってるんですね。こういうのも触れてみて初めてわかることなのかもね・・・
というのは置いておき、無論アップロードということなので通信の動作が入るため別のスレッド等でこの処理を書かないといけないわけですが、まあツイートを投稿する非同期のメゾットにぶち込んでおけば問題なく動くと思います。
で、このサイトで宣言されているpath1,path2という変数Fileという型ではなくStringのため
ちなみに
1つ向こうのサイトで書いてることで気を付けておくこと
配列定数は、イニシャライザーにおいてのみ使用可能です。
とか出て怒られます。
配列定数はわかるけど、イニシャライザーってなんだ?
今度調べよう。
さてタイトルにあるもう一つの項目文字数表示。
こちらも何故かドンピシャなものが
[Android] EditTextの入力文字数を動的にカウント表示する方法
というメッセージをいただいたのでさっそく実装してきました。
まず現状のライブラリで複数画像の投稿ができるのかと思い調べてみたら。
Twitter4Jで複数の画像をアップロードしてツイートする方法
という何ともドンピシャな内容が書かれたサイトにありつくことに。
これを見て思ったのは、どうやら一枚一枚アップロードしてから後でリンクを張るみたいな構造になってるんですね。こういうのも触れてみて初めてわかることなのかもね・・・
というのは置いておき、無論アップロードということなので通信の動作が入るため別のスレッド等でこの処理を書かないといけないわけですが、まあツイートを投稿する非同期のメゾットにぶち込んでおけば問題なく動くと思います。
で、このサイトで宣言されているpath1,path2という変数Fileという型ではなくStringのため
uri= data.getData(); //選択した画像の受け取り
ContentResolver cr = getContentResolver();
String[] columns = { MediaStore.Images.Media.DATA };
Cursor c = cr.query(uri, columns, null, null, null);
c.moveToFirst();
if(path1 == null){
path1 = c.getString(0);
}else if(path2 == null)
{
path2 = c.getString(0);
}else if(path3 == null)
{
path3 = c.getString(0);
}else if(path4 == null)
{
path4 = c.getString(0);
}
という風にそのままpathとでも名前をつけた変数に代入しておくといいと思います。ちなみに
Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); startActivityForResult(intent, 1);等をボタン等のイベントに書いておくとギャラリーが開いて
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != RESULT_OK) return;
if (requestCode == 1) {
uri= data.getData(); //選択した画像の受け取り
ContentResolver cr = getContentResolver();
String[] columns = { MediaStore.Images.Media.DATA };
Cursor c = cr.query(uri, columns, null, null, null);
c.moveToFirst();
if(path1 == null){
path1 = c.getString(0);
}else if(path2 == null)
{
path2 = c.getString(0);
}else if(path3 == null)
{
path3 = c.getString(0);
}else if(path4 == null)
{
path4 = c.getString(0);
}
}
}
これでギャラリーで選択した画像が取れるみたいです。1つ向こうのサイトで書いてることで気を付けておくこと
update.setMediaIds(new long[2]{media1.getMediaId(), media2.getMediaId()});これの[2]の部分を[]にしないとコンパイルが通りません何故か。
配列定数は、イニシャライザーにおいてのみ使用可能です。
とか出て怒られます。
配列定数はわかるけど、イニシャライザーってなんだ?
今度調べよう。
さてタイトルにあるもう一つの項目文字数表示。
こちらも何故かドンピシャなものが
[Android] EditTextの入力文字数を動的にカウント表示する方法
こちらのソースを参考にさせていただきました。
あとは表示の仕方を自分で決めてしまうだけ。ね、簡単でしょ?(簡単じゃないフラグ)
まあとにかく、徐々にクライアントとして必要な機能はついてきているわけですよ。
そろそろGooglePlayで公開してもいいかな。
でもその前にアイコンと、アプリ名をもっとセンスのいいものに・・・・誰か案をくださいお願いしま(ry
最後に
え?DMでの画像投稿はどうしたって?
まだだよちくしょーーめ!
あとは表示の仕方を自分で決めてしまうだけ。ね、簡単でしょ?(簡単じゃないフラグ)
まあとにかく、徐々にクライアントとして必要な機能はついてきているわけですよ。
そろそろGooglePlayで公開してもいいかな。
でもその前にアイコンと、アプリ名をもっとセンスのいいものに・・・・誰か案をくださいお願いしま(ry
最後に
え?DMでの画像投稿はどうしたって?
まだだよちくしょーーめ!
2014年6月26日木曜日
自作Twitterクライアント作成の記録(23)DM送信対応等
長いこと更新してませんでしたが、いろいろ忙しくてこちらまで手が回らない状況でした。
とにかく、DM送信(文字だけ)に対応させたので仕方のメモ的なものを残しておきます。
送信する際に使うもの(文字のみ)
mentionIDには相手方のUserID(Mention送信と同じでOK)paramas[0]には送信したい文字列を
あとは、返信等で使ったものを流用してDM送信機能の出来上がり。
画像送信の方は画像つきツイートと同じ要領でいけると思ってたらそうでもなく、なぜかうまく行かない・・・・うまくいったらまた書き換えておきます。
2014/07/06追記
タイトルの番号振り間違えてるorz
とにかく、DM送信(文字だけ)に対応させたので仕方のメモ的なものを残しておきます。
送信する際に使うもの(文字のみ)
mTwitter = TwitterUtils.getTwitterInstance(this); mTwitter.sendDirectMessage(mentionID, params[0]);
mentionIDには相手方のUserID(Mention送信と同じでOK)paramas[0]には送信したい文字列を
あとは、返信等で使ったものを流用してDM送信機能の出来上がり。
画像送信の方は画像つきツイートと同じ要領でいけると思ってたらそうでもなく、なぜかうまく行かない・・・・うまくいったらまた書き換えておきます。
2014/07/06追記
タイトルの番号振り間違えてるorz
2014年4月28日月曜日
自作Twitterクライアント作成の記録(22) 環境を変えたら・・・・
どうも、おひしぶりです。
最近忙しくなってあまりプログラムを弄れない状況にいました。(主に大学)
行く日は片道1時間半かけて(この時間で講義聞ける)行ってます。関係ないですね。
さて、その大学で指定PCを買い、性能がかなり良かったので開発環境を移したのですが、その際発覚したアプリのバグについてすこし。
最近忙しくなってあまりプログラムを弄れない状況にいました。(主に大学)
行く日は片道1時間半かけて(この時間で講義聞ける)行ってます。関係ないですね。
さて、その大学で指定PCを買い、性能がかなり良かったので開発環境を移したのですが、その際発覚したアプリのバグについてすこし。
2014年3月17日月曜日
Twitterの規制条件が緩んだ?件
いやーみなさんもおそらくやっているであろうTwitterやっている人ならわかると思いますが規制というシステムがあり、これに悩まされてる廃人の方も多いはず。
しかし、つい最近とあるきっかけでこれが緩んだのではという説が浮上している。
しかし、つい最近とあるきっかけでこれが緩んだのではという説が浮上している。
登録:
投稿 (Atom)