2017-02-15 8 views
0

イメージを添付してTwitterにメッセージを送信できるアプリをプログラミングしました。できます!私はいくつかのデバイスでそれをテストし、同じことを他の人に依頼しました。それは、twitterの友人が選択されたときにダイレクトメッセージでも機能します。ただし、「ダイレクトメッセージ」が選択されている場合は機能しません。これは、 "ダイレクトメッセージ"(これは本当に奇妙です)を介して彼を選択するのではなく、ユーザーが直接友人を選択するように強制します。そうでなければ、画像は添付されません。TwitterのAndroidで「ダイレクトメッセージ」に画像を添付するにはどうすればよいですか?

Screenshot of intent chooser

はここに私のXamarinのAndroidのプログラミングコードです:ちょうどスクリーンショットを見てみましょう。それを修正する方法を教えてください。現在のところ、すべてのオプションが機能し、友だちを選択しても、「ダイレクトメッセージ」は選択できません。また、Twitterで見たいtwitterテキストには何の問題もないことを伝える必要があります。

 public bool TweetImage(Bitmap imageToTweet) 
    { 
     var messageIntent = context.FindMessageIntent(this.twitterConstants.PackageName); 
     if (messageIntent == null) 
     { 
      return false; 
     } 
     string outputFileBMP = SaveBitmap(imageToTweet); 
     context.Tweet(messageIntent, outputFileBMP, this.twitterConstants.DefaultTwitterText, this.twitterConstants.ChooserMessage); 
     return true; 
    } 

 public static Intent FindMessageIntent(this ContextWrapper contextWrapper, params string[] packageNames) 
    { 
     Intent wantedIntent = new Intent(); 
     wantedIntent.SetType("text/plain"); 

     var resolveInfos = contextWrapper.PackageManager.QueryIntentActivities(wantedIntent, PackageInfoFlags.MatchDefaultOnly); 

     var result = (from r in resolveInfos 
         from p in packageNames 
         where p == r.ActivityInfo.PackageName 
         select p).FirstOrDefault(); 

     if (result != null) 
     { 
      wantedIntent.SetPackage(result); 
      return wantedIntent; 
     } 
     return null; 
    } 

 public static void Tweet(this ContextWrapper contextWrapper, Intent messageIntent, string filePath = null, string message = null, string chooserMessage = null) 
    { 
     if (filePath != null) 
     { 
      using (var file = new Java.IO.File(filePath)) 
      { 
       messageIntent.PutExtra(Intent.ExtraStream, Android.Net.Uri.FromFile(file)); 
      } 
     } 
     if (message != null) 
     { 
      messageIntent.PutExtra(Intent.ExtraText, message); 
     } 

     if (chooserMessage != null) 
     { 
      using (var chooser = Intent.CreateChooser(messageIntent, chooserMessage)) 
      { 
       contextWrapper.StartActivity(chooser); 
      } 
      return; 
     } 
     contextWrapper.StartActivity(messageIntent); 
    } 

私はAndroidの使用していることに注意してくださいとAndroid(意図に基づく)に基づくソリューションを必要としてください。

+0

[直接メッセージで画像を送信するにはどうすればいいですか?](http://stackoverflow.com/questions/37345016/how-to-send-an-image-in-direct-message) –

答えて

0

悲しいことに、Twitter don't provide API access for uploading images via DM

TwitterのプライベートAPIを使用できる場合は、media_idをあなたのDMに添付することができます。しかしそれ以外は、あなたは運が悪いです。

申し訳ありません。

+0

私はDM経由で画像をアップロードすることに成功しました。これはまさに私が友人を選んだときに起こることです。それは動作します、それについて心配しないでください。私は友人ではなく "ダイレクトメッセージ"だけが選択されている状況で動作させるようにしています。 – Daan

関連する問題