Можем ли мы опубликовать изображение в твиттере, используя Twitter API в Android? - PullRequest
13 голосов
/ 30 сентября 2011

Я успешно интегрировал Twitter API и могу публиковать текст со своего устройства, но хочу знать две вещи

  1. Можно ли опубликовать изображение в твиттере с помощью API в Android?

  2. В твиттере мы использовали OAuth.OAUTH_TOKEN и OAuth.OAUTH_TOKEN_SECRET токены. Я передаю значения токенов по второму аргументу в приведенном ниже коде, это нормально? или я должен оставить это поле пустым?

    String token = prefs.getString(OAuth.OAUTH_TOKEN, OAuth_token_key);
    String secret = prefs.getString(OAuth.OAUTH_TOKEN_SECRET, OAuth_token_secret);
    

Я искал, чтобы узнать, возможно ли post image on twitter using twitter API in Android, но я не нашел ни одной ссылки, я знаю, возможно ли это или нет.

У меня одна похожая проблема с изображением поста для iPhone , и также есть ответ . Я не знаю насчет iPhone, поэтому не знаю, правильный ли это ответ или нет. Вот ссылка на аналогичный вопрос об изображении для iPhone

Пожалуйста, помогите мне решить эту проблему.

Ответы [ 3 ]

15 голосов
/ 25 февраля 2012

Да. Вы можете опубликовать изображение в Twitter.

AIK, есть два способа загрузить фотографию в Twitter.

С помощью Сначала вам необходимоРеализуйте API Twitter и используйте эту ссылку для загрузки Photot в Twitter.

Извините за пример.так как я не получаю ни одного примера, как это использовать.

С Second вы можете сделать это с помощью API twitPic4j.Просто добавьте API для twitPic4j и напишите ниже код для загрузки фотографии.

Код:

File picture = new File(APP_FILE_PATH + "/"+filename+".jpg");  
// Create TwitPic object and allocate TwitPicResponse object 
TwitPic tpRequest = new TwitPic(TWITTER_NAME, TWITTER_PASSWORD); 
TwitPicResponse tpResponse = null;  
// Make request and handle exceptions                            
try {         
        tpResponse = tpRequest.uploadAndPost(picture, customMessageEditText.getText()+" http://www.twsbi.com/");

} 
catch (IOException e) {         
        e.printStackTrace(); 
       Toast.makeText(getApplicationContext(), "Please enter valid username and password.", Toast.LENGTH_SHORT).show();
} 
catch (TwitPicException e) {         
        e.printStackTrace(); 
        Toast.makeText(getApplicationContext(), "Invalid username and password.", Toast.LENGTH_SHORT).show();
        Toast.makeText(getApplicationContext(), "Please enter valid Username and Password.", Toast.LENGTH_SHORT).show();
}  
// If we got a response back, print out response variables                               
if(tpResponse != null) {         
       tpResponse.dumpVars();
       System.out.println(tpResponse.getStatus());
       if(tpResponse.getStatus().equals("ok")){
            Toast.makeText(getApplicationContext(), "Photo posted on Twitter.",Toast.LENGTH_SHORT).show();
            //picture.delete();
       }
 }

Приведенный выше код работает для моего случая.

Надеюсь, вы получилирешение со вторым, и я не знаю, как использовать первый.

Наслаждайтесь.:)

Обновлено

Если это не помогло вам, попробуйте какой-нибудь проект, указанный ниже:

Пример 1

Пример 2

Пример 3

Пример 4

Надеюсь, что это будет

Happy Coding.

================================

ДЛЯ erdomester и обновленный ответ

==================================

Пожалуйста, проверьте мою первую ссылку, приведенную для Example1 и его API: Twitter4J Итак, если естьбиблиотека, которая перестает давать функциональность для загрузки изображения в твиттер, вы можете использовать другую библиотеку для того же.Пожалуйста, проверьте и прочитайте обновленную версию Twitter4j.

Проверьте API Twitter4J для загрузки файла в Twitter: Загрузка изображения в Twitter4j

Например, помощь вы также можете проверить ниже код для загрузки файла изображенияв Twitter.

Код для загрузки изображения:

    /**
 * To upload a picture with some piece of text.
 * 
 * 
 * @param file The file which we want to share with our tweet
 * @param message Message to display with picture
 * @param twitter Instance of authorized Twitter class
 * @throws Exception exception if any
 */

public void uploadPic(File file, String message,Twitter twitter) throws Exception  {
    try{
        StatusUpdate status = new StatusUpdate(message);
        status.setMedia(file);
        twitter.updateStatus(status);}
    catch(TwitterException e){
        Log.d("TAG", "Pic Upload error" + e.getErrorMessage());
        throw e;
    }
}

Я надеюсь, что это поможет вам больше для вашего запроса.

Спасибо eredomester за уведомление о том, что tweetpic больше не работает для Twitter.Но, пожалуйста, не делайте downvote, чтобы ответить, пока вы не полностью выполните поиск по данному ответу.Данная библиотека Twitter4J в Примере 1 дает четкое представление о загрузке изображения в твиттер, и вы можете легко реализовать ее.

Для получения дополнительной справки и кода вы также можете проверить: Загрузка медиафайлов в Twitter

Примечание: Чтобы использовать это, пожалуйста, убедитесь, что у вас последний файл JAR.Для этого я использовал twitter4j-core-2.2.5.jar или более.

Пожалуйста, комментируйте меня вместо того, чтобы понижать голосование, если у вас возникнут какие-либо проблемы в этом.

2 голосов
/ 30 сентября 2011

Можно ли опубликовать изображение в твиттере с помощью API в Android?

Да, вы можете загружать изображения в Twitter после успешной аутентификации, используя Twitter Media Uplload .

В твиттере мы использовали OAuth.OAUTH_TOKEN и OAuth.OAUTH_TOKEN_SECRET токены. Я передаю значения токена по второму аргументу в приведенном ниже коде ОК ? или я должен оставить это поле пустым?

Вы должны добавить как токен, так и секретный ключ токена, это будет полезно для setTokenWithSecret методов Tiwtter, в которых вы должны отправить и токен, и секрет токена.

1 голос
/ 30 сентября 2011

Да, вы можете опубликовать изображение в твиттере, используя API Twitter, например, twitter4j, но я предлагаю вам использовать класс HttpPost и класс DefaultHttpClient, потому что на практике это хорошо, и вам не нужно добавлять к нему какие-либо внешние Twitter-API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...