2017-02-15 2 views
0

Ich programmierte eine App, die eine Nachricht an Twitter mit einem angehängten Bild senden kann. Es klappt! Ich habe es auf mehreren Geräten getestet und andere Leute gebeten, das Gleiche zu tun. Es funktioniert sogar für eine direkte Nachricht, wenn ein Twitter-Freund ausgewählt ist. Es funktioniert jedoch nicht, wenn "Direktnachricht" ausgewählt ist. Dies zwingt den Benutzer, einen Freund direkt auszuwählen, anstatt ihn über "Direktnachricht" auszuwählen (was wirklich seltsam ist), ansonsten ist das Bild nicht angehängt. Werfen Sie einen Blick auf den Screenshot:Wie kann ich ein Bild an eine "Direct Message" in Twitter Android anhängen?

Screenshot of intent chooser

Hier ist meine Xamarin Android Programmiercode. Lass mich wissen, wie ich es beheben kann. Derzeit funktionieren alle Optionen, sogar die Auswahl meines Freundes , aber nicht "Direct Message". Ich muss auch sagen, dass ich kein Problem mit dem Twitter-Text habe, den ich im Tweet erwarten würde.

 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; 
    } 

und

 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; 
    } 

und

 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); 
    } 

Bitte beachten Sie, dass ich bin mit Android und eine Lösung auf Android (Intent-basiert) auf Basis benötigen.

+0

Mögliches Duplikat von [Wie ein Bild in direkter Nachricht schicken?] (Http://stackoverflow.com/questions/37345016/how-to-send-an-image-in-direct-message) –

Antwort

0

Traurig, Twitter don't provide API access for uploading images via DM.

Wenn Sie die private API von Twitter nutzen können, sollten Sie in der Lage sein, eine media_id an Ihr DM anzuhängen. Aber ansonsten hast du kein Glück.

Entschuldigung.

+0

ich glaube, ich ist es bereits gelungen, Bilder über DM hochzuladen. Genau das passiert, wenn ich einen Freund auswähle. Es funktioniert, mach Dir keine Sorgen darüber. Ich versuche einfach, es in Situationen funktionieren zu lassen, in denen nicht der Freund sondern nur "Direct Message" ausgewählt ist. – Daan

Verwandte Themen