【问题标题】:Jumblr Implementation androidJumblr 实现 android
【发布时间】:2016-01-19 13:45:51
【问题描述】:

我有什么

我有一张照片需要发布到Social API,比如FB,TWITTER,TUMBLR,FLICKR

我想要什么

我想把我的照片发到Tumblr

我尝试了什么

我遇到了Jumblr Client,这是Tumblr的官方客户

我的问题

文档直接说

JumblrClient client = new JumblrClient("consumer_key","consumer_secret");
client.setToken("oauth_token", "oauth_token_secret");

我有consumer_key & consumer_secret ,如何认证和获取 oauth_token , oauth_token_secret

【问题讨论】:

    标签: android tumblr jumblr


    【解决方案1】:

    我必须承认,缺少 Jumblr 文档。 请参阅以下链接。他们会回答您的问题。
    1) 完整的登录程序代码:Github Project
    2) 代码 sn-p 将图片发布到 Tumblr : Code snippet

    【讨论】:

    • 很高兴我能帮上忙。
    【解决方案2】:

    感谢克林克兹。在这些链接中它非常向前,但如果仍然有人遇到问题,这是我在我的 Android 应用程序 中使用的代码并且它工作正常。 Android 首先,我们必须在应用级 gradle 文件中添加这两行:

    implementation 'com.daksh:loglr:2.1.4'
    实现 'com.tumblr:jumblr:0.0.13'

    private void loginToTumblr() {
    
           Loglr loglr = Loglr.INSTANCE;
           if(loglr != null) {
               loglr.setConsumerKey("TUBMLR_CONSUMER_KEY"); // Replace with your App's Key
               loglr.setConsumerSecretKey("TUBMLR_CONSUMER_SECRET"); // Replace with your App's Key
               loglr.setUrlCallBack("https://www.callback.com/"); // Replace with your App's Callback
               loglr.setLoginListener(new LoginListener() {
                   @Override
                   public void onLoginSuccessful(com.tumblr.loglr.LoginResult loginResult) {
                   String oAuthToken = loginResult.getOAuthToken();
                   String oAuthTokenSecret = loginResult.getOAuthTokenSecret();
                   Log.w(TAG, oAuthToken + "\n" + oAuthTokenSecret);                   
                   shareOnTumblr(oAuthToken , oAuthTokenSecret);
                   }
               });
               loglr.setExceptionHandler(new ExceptionHandler() {
                   @Override
                   public void onLoginFailed(RuntimeException e) {
                       Log.e(TAG, "Loglr Exeception: " + e.getMessage());
                       Toast.makeText(this, "Sorry! can't login to the tumblr.", Toast.LENGTH_LONG).show();
                   }
               });
             loglr.initiate(this);
           }
           else
               Toast.makeText(this, "Something went wrong while Loggin in to Tumblr.", Toast.LENGTH_LONG).show();
               }   
    

    登录后,如果你想分享一些带有标题的图片,你可以使用以下代码:

    private void shareOnTumblr(String token, String tokenSecret) {
    
              IResult iResult = new IResult() {
                  @Override
                  public void onSuccess(String result) {
                      loadingBar.hide();
                      Toast.makeText(this, result, Toast.LENGTH_LONG).show();
                  }
    
                  @Override
                  public void onError(String error) {
                      Toast.makeText(this, error, Toast.LENGTH_LONG).show();
                  }
              };
    
              String caption   = "IMAGE CAPTION GOES HERE";
              String imagePath = "IMAGE PATH GOES HERE"; //It must a String
    
              String params[] = new String[]{token, tokenSecret , caption, imagePath};
              new TumblrPostAsyncTask(iResult).execute(params);
           }
    

    public static class TumblrPostAsyncTask extends AsyncTask<String, String, Boolean> {
    
                IResult iResult;
    
                TumblrPostAsyncTask(IResult iResult){
                    this.iResult = iResult;
                }
    
                @Override
                protected void onPreExecute() {
                    super.onPreExecute();
                }
    
                @Override
                protected Boolean doInBackground(String... params) {
                    boolean result;
                    try {
                        JumblrClient client = new JumblrClient("TUBMLR_CONSUMER_KEY", "TUBMLR_CONSUMER_SECRET");
                        client.setToken(params[0], params[1]);
    
                        PhotoPost post = client.newPost(client.user().getBlogs().get(0).getName(),PhotoPost.class);
                        Log.w(TAG, params[2] + " " + params[3]);
                        post.setCaption(params[2]);
                        post.setData(new File(params[3]));
                        post.save();
                        result = true;
    
                    } catch (Exception e) {
                        Log.w(TAG, "Tumblr's Error: " + e.getMessage());
                        result = false;
                    }
    
                   return result;
                }
    
                @Override
                protected void onPostExecute(Boolean success) {
                    super.onPostExecute(success);
                    Log.w(TAG, "On Post Execute: " + success);
                    if(success)
                        iResult.onSuccess("Successfully Posted on Tumblr.");
                    else
                        iResult.onError("Sorry! couldn't Post on Tumblr.");
    
                }
            }
    

    界面如下:

    public interface IResult {
    
        void onSuccess(String result);
        void onError(String error);
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多