我们可以在Android上使用Twitter API在Twitter上发布图片吗?

时间:2011-09-30 11:23:33

标签: android twitter

我已经成功整合了twitter API,我可以从我的设备发布文字,但我想知道两件事

  1. 是否可以使用Android中的API在Twitter上发布图片?

  2. 在twitter中我们使用了OAuth.OAUTH_TOKENOAuth.OAUTH_TOKEN_SECRET标记。我在下面的代码中传递第二个参数的标记值是否可以?或者我必须把它留空?

    String token = prefs.getString(OAuth.OAUTH_TOKEN, OAuth_token_key);
    String secret = prefs.getString(OAuth.OAUTH_TOKEN_SECRET, OAuth_token_secret);
    
  3. 我搜索了解post image on twitter using twitter API in Android是否可能,但我没有找到任何我知道是否有可能的链接。

    我为iPhone there is a answer also提供了一个类似的帖子图片问题。我不知道iPhone,所以我不知道天气是否正确答案。这是iPhone的贴图类似问题的链接

    请帮我解决这个问题。

3 个答案:

答案 0 :(得分:15)

是的您可以在Twitter上发布图片。

AIK,有两种方法可以将照片上传到Twitter。

使用 First ,您必须实施Twitter API并使用this Link将Photot上传到Twitter。

对不起这个例子。因为我不知道如何使用它。

使用 Second ,您可以借助twitPic4j API执行此操作。 只需添加twitPic4j的API并在下面写下代码即可上传照片。

代码:

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

以上代码适用于我的情况。

希望你得到第二个溶剂,我不知道如何使用第一个。

享受。 :)

<强>更新

如果仍然不适合您并尝试下面列出的项目:

Example 1

Example 2

Example 3

Example 4

希望能帮助你。

快乐编码。

<强> ==================================

FOR erdomester和更新的答案

<强> ==================================

请检查我给Example1及其api的第一个链接:Twitter4J 因此,如果任何库停止提供在Twitter上传图像的功能,您可以使用其他库。请检查并阅读重新分类Twitter4j。​​

检查Twitter4J API以将文件上传到Twitter:Twitter4j Image Upload

例如帮助您还可以检查以下代码以在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回答,直到你没有完全搜索给定的答复。鉴于图1中的示例库中的Twitter4J给出了关于将图像上传到twitter的明确想法,您可以轻松实现它。

如需更多帮助和代码,您还可以查看:Twitter Upload media

注意:要使用此功能,请确保您拥有最新的jar文件。我已经使用twitter4j-core-2.2.5.jar或更多。

如果你遇到任何问题,请评论我,而不是低估这个答案。

答案 1 :(得分:2)

  

是否可以在Android上使用API​​在Twitter上发布图片?

是的,您可以使用Twitter Media Uplload成功验证后将图像上传到Twitter。

  

在twitter中,我们使用了OAuth.OAUTH_TOKEN和OAuth.OAUTH_TOKEN_SECRET   tokens.I在下面的代码中传递第二个参数的标记值就是它   好 ?或者我必须把它留空?

你应该添加令牌和令牌密钥,它对于你必须发送令牌和令牌秘密的Tiwtter的setTokenWithSecret方法非常有用..

答案 2 :(得分:1)

是的,您可以使用Twitter api(如twitter4j)在Twitter上发布图片,但我建议您使用HttpPost类和DefaultHttpClient类,因为它在实践中很好,而且您不需要添加任何外部的Twitter API。