Twitterで投稿する際の添付画像をDrawableフォルダから選択する

投稿者: Anonymous  以前よりTwitterで投稿する際にDrawableフォルダから画像を指定して投稿する方法が分からず困っています。そもそもそういうことができるのでしょうか? Twitterに画像を投稿する際はFile指定しないといけないので、現在は以下のように一旦内部ストレージに画像を保存してからTwitterに画像を投稿させているのですが、新たに画像を添付させるためにはこういう方法しかないのでしょうか?どなたか分かる方がいればお助けいただきたいです。すみませんが、宜しくお願いします。 画像保存 public void createImageFile() { String path = Environment.getExternalStorageDirectory().getPath() + “/image.png”; File file = new File(path); if (!file.exists()) { try { FileOutputStream outputStream = new FileOutputStream(path, false); Bitmap bitmap = TwitterContents.getInstance().getmImage(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream); outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } 画像付きツイート File file = new File(Environment.getExternalStorageDirectory().getPath() +…(Continue Reading)

Twitterの認証画面でのキャンセルボタンの検知

投稿者: Anonymous  現在TwitterとAndroidを連携させたアプリを作っています。 Twitterの認証ページに飛ぶと「連携アプリを認証」と「キャンセル」というボタンがあり、「連携アプリを認証」を押すと認証が終わり投稿できるのですが、認証ページで「キャンセル」を押すと java.lang.RuntimeException: An error occured while executing doInBackground()というエラーが返ってきてアプリが落ちてしまいます。多分僕が予想するに、キャンセルボタンが押されても「連携アプリを認証」が押された時のような投稿処理が行われているのかなと思います。  そこでキャンセルボタンが押されたことを検知したいのですが、検知する方法はあるのでしょうか?ご教授いただけますと幸いです。ちなみにTwitter4Jというライブラリを使っています。すみませんが、よろしくお願いします。 java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:300) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) at java.util.concurrent.FutureTask.setException(FutureTask.java:222) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841) Caused by: java.lang.NullPointerException at libcore.net.UriCodec.encode(UriCodec.java:132) at java.net.URLEncoder.encode(URLEncoder.java:57) at twitter4j.HttpParameter.encode(HttpParameter.java:261) at twitter4j.auth.OAuthAuthorization.encodeParameters(OAuthAuthorization.java:384) at twitter4j.auth.OAuthAuthorization.encodeParameters(OAuthAuthorization.java:367) at twitter4j.auth.OAuthAuthorization.normalizeRequestParameters(OAuthAuthorization.java:351) at twitter4j.auth.OAuthAuthorization.generateAuthorizationHeader(OAuthAuthorization.java:198) at twitter4j.auth.OAuthAuthorization.generateAuthorizationHeader(OAuthAuthorization.java:250) at…(Continue Reading)

monacaにLINE、FB、Twitterの紹介機能を実装したい

投稿者: Anonymous 家電量販店のアプリなどでLINE、FB、Twitterにアプリやアプリ内の記事を投稿する機能があるものがあるのですが色々と探してみたのですがmonacaで実装する方法が分かりません。。 AppSociallyというサービスはAndroidしか対応していないようなのでハイブリッドアプリでどのようにすればいいのか考えています。 皆様のアドバイスをいただければ幸いです。 どうぞよろしくお願いいたします。 解決 lineで本文を共有してもらうには以下のURL schemeを利用します。 line://msg/text/[ここに本文] twitterで本文をツイートしてもらうには以下のURLを使用します。 https://twitter.com/intent/tweet?text=[ここに本文] facebookでシェアしてもらうには以下のURLを使用します。 http://www.facebook.com/sharer.php?u=[ここにURL]&t=[ここにタイトル] Hatenaにエントリーしてもらうには以下のURLを使用します。 http://b.hatena.ne.jp/add?mode=confirm&url=[ここにURL]&title=[ここにタイトル] Google+1ボタンを押してもらうには以下のURLを使用します。 https://plusone.google.com/_/+1/confirm?hl=ja&url=[ここにURL] 基本的に本文はhtmlspecialcharsなどを利用して特殊文字をHTMLエンティティに変換する必要があります。 これらのURLをアンカータグを利用してリンクして下さい。 <a href=”https://twitter.com/intent/tweet?text=こんにちは”> Twitterで「こんにちは」とつぶやく </a> javascriptを利用して動的にURLを叩く事もできますが、ステップを挟まずに強制的に投稿するには各サイトにアプリケーション登録してアプリケーションのkeyとsecretを発行する必要があります。 回答者: Anonymous

Twitterの認証と投稿を一つの流れまとめたい

投稿者: Anonymous  現在AndroidとTwitterを連携させたアプリを作っており、認証ボタンを押すと認証して投稿するという処理を行っているのですが、メッセージ投稿後に少し問題があります。  認証ボタンを押すとブラウザでTwitterの認証画面が開き、「連携アプリを認証」というボタンを押すと認証が完了して元のAndroidアプリの画面に戻り、設定してあったメッセージがTwitterに投稿されます。しかし、マルチタスクボタンを押してもう一度認証を行ったブラウザを開き、そのページにある「もし自動的に移動しない場合は、ここをクリックして続行→してください。」という文をクリックするとAndroidアプリの画面に戻るのですが、その際にもう一度メッセージが投稿されてしまいます。  「もし自動的に移動しない場合は、ここをクリックして続行→してください。」を押してもonPostExecuteを経由せずに投稿処理を行わないためにはどうすればよろしいでしょうか?お手数ですが、皆様の知恵をお借りしたいです。すみませんが、宜しくお願いします。 public class TwitterOAuthActivity extends Activity{ private String mCallbackURL; private Twitter mTwitter; private RequestToken mRequestToken; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mCallbackURL = getString(R.string.twitter_callback_url); mTwitter = TwitterUtils.getTwitterInstance(this); startAuthorize(); } public void startAuthorize() { AsyncTask<Void, Void, String> task = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void… params) { try…(Continue Reading)

twitter4j 4.x系が動かない

投稿者: Anonymous 開発環境はmaven, spring, java7, Androidアプリではないです。 JUNITでTESTしましたが、JSONのレスポンスが返ってきませんでした。 twitter4j.properties oauth.consumerKey=略 oauth.consumerSecret=略 oauth.accessToken=略 oauth.accessTokenSecret=略 TwitterService.java @Autowired private Twitter twitter; /** * Tweetを検索する * @param keywords * @return * @throws Exception */ public Set<Status> getTweet(String slice, Integer limit, String keywords) throws Exception { Set<Status> results = new HashSet<Status>(); Query query = new Query(keywords); query.setLang(“ja”); // ループ回数 if (limit…(Continue Reading)

実機での画像投稿ができません。原因は?

投稿者: Anonymous いつもお世話になっております。 無事画像投稿できましたが、実機でやると以下のエラーが出て画像が投稿できません。 画像の容量が多すぎてソースを組み替えてみたのですが、投稿できそうにありません。 ご教示願います。 ソース private void tweet() { //画像アップロード if(gazou==true){ new AsyncTask<Void, Void, Boolean>() { @Override protected Boolean doInBackground(Void… params) { InputStream input = null; try { //mTwitterはOAuth認可済みであるとする String message =mInputText.getText().toString(); for(int i =0;i<k;i++){ input=getDownSize(multi_uri[i]); mediaIds[i] = (mTwitter.uploadMedia(String.format(“[filename_%d]”, i + 1), input).getMediaId()); } if(k==0){ input=getDownSize(uri); mediaIds = new long[1]; mediaIds[0] = (mTwitter.uploadMedia(String.format(“[filename_%d]”,…(Continue Reading)

Androidから twitter4j を使用して動画を投稿をしたい

投稿者: Anonymous Androidから twitter4j を使用して、文字列+画像は正常に投稿できています。 今度これにプラスして、文字列+動画を同じように投稿してみたのですが、 エラーが発生します。 そもそも twitter4j は、動画投稿に対応しているのでしょうか? ドキュメントを読んでも動画投稿に関する記述をみつけることができませんでした。 もし、対応していない場合は、Twitterに動画投稿する方法についてアドバイスをよろしくお願い致します。 ソースコード抜粋: ConfigurationBuilder builder = new ConfigurationBuilder(); builder.setOAuthConsumerKey(Const.TW_CONSUMER_KEY); builder.setOAuthConsumerSecret(Const.TW_CONSUMER_SECRET); SharedPreferences pref = mActivity.getSharedPreferences(Const.TW_PREF_KEY, Context.MODE_PRIVATE); String oauthToken = pref.getString(Const.TW_SUB_KEY_OAUTH_TOKEN, “”); String oauthTokenSecret = pref.getString(Const.TW_SUB_KEY_OAUTH_TOKEN_SECRET, “”); builder.setOAuthAccessToken(oauthToken); builder.setOAuthAccessTokenSecret(oauthTokenSecret); Configuration config = builder.build(); Twitter twitter = new TwitterFactory(config).getInstance(); StatusUpdate status = new StatusUpdate(editText.getText().toString()); try { ByteArrayInputStream is…(Continue Reading)

Twitterの認証が解除されていることを検知する

投稿者: Anonymous 下記のサイトを参考にTwitter機能をアプリに実装し、ログインと投稿ができるようになりました。 http://qiita.com/gabu/items/f6f39900fd5e449045f9 ※ちなみにログインボタンを押して認証が終わると、定型文をそのままタイムラインにツイートするという仕様に変更してます。 しかし、TwitterのサイトでアプリとTwitterの認証を解除して再びログインボタンを押すと、ログイン画面に移らずそのまま投稿しようとして投稿が失敗してしまいます。 上記のサイトのやり方ではsharedpreferencesを使ってアクセストークンを保存してそれをずっと使っているからだと思うのですが、ではアプリとTwitterの連携が解除された時に処理を行わせようとしてもやり方がわかりません。どうすればTwitterの認証が解除されていることを検知することができるでしょうか? すみませんが、宜しくお願いします。 解決 どうすればTwitterの認証が解除されていることを検知することができるでしょうか? 認証が解除されていることを検知するには、保存したアクセストークンを用いて Twitter の API を実際に叩いてみる必要があります。 連携が解除されている場合はエラーが発生するので、そのエラーをみて判断する必要があります。 詳細は Error Codes & Responses HTTP Status Codes を確認してください 回答者: Anonymous

Caused by: java.lang.RuntimeException: Can’t create handler inside thread that has not called Looper.prepare()の原因は?

投稿者: Anonymous お世話になっております。 前回の質問では回答有難うございました。 無事、複数枚画像の投稿にすることが成功しました。 今回はその続きで、投稿はできているものの、Caused by: java.lang.RuntimeException: Can’t create handler inside thread that has not called Looper.prepare()がログキャトに出力されておりアプリが強制終了します。 ツイート自体は成功しているのですが、アプリが落ちてしまい困り果てました。 何かいい解決策はないでしょうか?ご教示願います。 public class TweetActivity extends Activity { private EditText mInputText; private Twitter mTwitter; private Button mGazou; private ImageView imageView,imageView2,imageView3,imageView4; private Boolean gazou=false; UploadedMedia media1=null; UploadedMedia media2=null; UploadedMedia media3=null; UploadedMedia media4=null; int k =0; Uri[] multi_uri=null; Uri…(Continue Reading)