Jumblr 实施 android

Jumblr Implementation android

我有什么

我有一张照片需要 post编辑到 Social API 就像 FB,TWITTER,TUMBLR,FLICKR

我想要的

我想post我的照片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

我必须承认,缺少 Jumblr 文档。 请参考以下链接。他们会回答你的问题。
1) 完整的登录程序代码:Github Project
2) post 图像到 Tumblr 的代码片段:Code snippet

感谢 Clinkz。它在这些链接中非常靠前,但如果仍然有人有问题,这是我在我的 Android app 中使用的代码,它工作正常。 对于 Android,我们必须在第 1 次在应用级别 gradle 文件中添加这两行:

实施'com.daksh:loglr:2.1.4'
实施 'com.tumblr:jumblr:0.0.13'
</p> <pre><code>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(); }

登录后如果你想分享一些带有标题的图片,你可以使用以下代码: </p> <pre><code>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); }

</p> <pre><code>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."); } }

界面如下所示:
</p> <pre><code>public interface IResult { void onSuccess(String result); void onError(String error); }