2

重複の可能性:
AndroidのTwitter APIを使用してTwitterに画像を投稿できますか?
画像付きのAndroidTwitterツイート

カメラから写真を撮り、ユーザーのツイートステータスでアップロードする必要があります。私はできません。助けてください。followigコードを使用してテキストを投稿しましたが、写真をビットマップでtwiiterにアップロードできません

 public void shareTwitter()
         {
             try {
                String token =  myPrefs.getString(FindFriends.PREF_KEY_OAUTH_TOKEN, "");
                String secret =  myPrefs.getString(FindFriends.PREF_KEY_OAUTH_SECRET, "");

                    ConfigurationBuilder cb = new ConfigurationBuilder();
                    cb.setDebugEnabled(true)
                    .setOAuthConsumerKey(FindFriends.TWITTER_CONSUMER_KEY)
                    .setOAuthConsumerSecret(FindFriends.TWITTER_CONSUMER_SECRET)
                    .setOAuthAccessToken(token)
                    .setOAuthAccessTokenSecret(secret);
                    AccessToken accessToken = new AccessToken(token, secret);
                    Twitter twitter = new TwitterFactory(cb.build()).getInstance(accessToken);
                    twitter.updateStatus("hello");


             } catch (Exception e) {
                e.printStackTrace();
4

3 に答える 3

6

このコードを試してみてください。

 Twitter twitter = new TwitterFactory(conf).getInstance();
            Bitmap bmp = BitmapFactory.decodeResource(
                    TwitterFriends.this.getResources(), R.drawable.edit_ic);
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
            byte[] byteArray = stream.toByteArray();
            ByteArrayInputStream bis = new ByteArrayInputStream(byteArray);
            StatusUpdate status = new StatusUpdate(message);
            status.setMedia("newyear", bis);

            try {
                twitter.updateStatus(status);
            } catch (Exception e) {
                e.printStackTrace();
            }
于 2012-11-30T05:06:28.437 に答える
1

Twitter はステータスのみを更新し、写真は更新しません。達成したい場合は、TwitPic に画像をアップロードすることを検索してください。これにより、TwitPic 上の画像の bit.ly URL が得られます。ユーザーを Picture にリダイレクトする同じ URL を Twitter に投稿します。

于 2012-11-30T04:51:28.030 に答える
0

これがアップロードボタンです...

        upload.setOnClickListener(new OnClickListener()
        {   
            @Override
            public void onClick(View v) 
            {
                new ImageSender().execute();

            }
        });

これは非同期タスクです...

private class ImageSender extends AsyncTask<URL, Integer, Long> 
    {
        private String url;

        protected void onPreExecute() 
        {
            //mProgressDialog = ProgressDialog.show(SendImageActivity.this, "", "Sending image...", true);

            //mProgressDialog.setCancelable(false);
            //mProgressDialog.show();
        }

        protected Long doInBackground(URL... urls) 
        {            
            long result = 0;
            prefs = PreferenceManager.getDefaultSharedPreferences(TestingTwitterActivity.this);
            String token1=prefs.getString("token", null);
            String tokenSecret1=prefs.getString("tokenSecret", null);
            Configuration conf = new ConfigurationBuilder()                 
            .setOAuthConsumerKey(twitter_consumer_key) 
            .setOAuthConsumerSecret(twitter_secret_key) 
            .setOAuthAccessToken(token1) 
            .setOAuthAccessTokenSecret(tokenSecret1) 
            .build(); 

            OAuthAuthorization auth = new OAuthAuthorization (conf, conf.getOAuthConsumerKey (), conf.getOAuthConsumerSecret (),
                    new AccessToken (conf.getOAuthAccessToken (), conf.getOAuthAccessTokenSecret ()));

            ImageUpload upload = ImageUpload.getTwitpicUploader (twitpic_api_key, auth);

            //Log.d(TAG, "Start sending image...");

            try {
                url = upload.upload(new File(mPath));//here your camera pic file path...
                result = 1;

                //Log.d(TAG, "Image uploaded, Twitpic url is " + url);          
            } catch (Exception e) {        
                //Log.e(TAG, "Failed to send image");

                e.printStackTrace();
            }

            return result;
        }

        protected void onProgressUpdate(Integer... progress) 
        {            
        }

        protected void onPostExecute(Long result) 
        {
            //mProgressDialog.cancel();

            String text = (result == 1) ? "Image sent successfully.\n Twitpic url is: " + url : "Failed to send image";

            Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show();
        }
    }
于 2012-11-30T05:10:44.417 に答える