Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here

jumblr

Tumblr API v2 Java Client

Subscribe to updates I use jumblr


Statistics on jumblr

Number of watchers on Github 263
Number of open issues 36
Average time to close an issue 3 months
Main language Java
Average time to merge a PR 26 days
Open pull requests 10+
Closed pull requests 4+
Last commit about 3 years ago
Repo Created over 7 years ago
Repo Last Updated over 2 years ago
Size 1.54 MB
Organization / Authortumblr
Contributors13
Page Updated
Do you use jumblr? Leave a review!
View open issues (36)
View jumblr activity
View on github
Book a Mock Interview With Me (Silicon Valley Engineering Leader, 100s of interviews conducted)
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating jumblr for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Jumblr.

Build Status

A pleasant and complete Java wrapper for the Tumblr V2 API.

Example

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

// Write the user's name
User user = client.user();
System.out.println(user.getName());

// And list their blogs
for (Blog blog : user.getBlogs()) {
    System.out.println("\t" + blog.getTitle());
}

// Like the most recent "lol" tag
client.tagged("lol").get(0).like();

Basic Usage

User

Information about the authenticating user

User user = client.user();
System.out.println(user.getName());

What blogs the user is following

List<Blog> blogs = client.userFollowing();
for (Blog blog : blogs) {
    System.out.println(blog.getTitle());
}

Dashboard posts for the user?

List<Post> posts = client.userDashboard();

Or the things we like:

List<Post> posts = client.userLikes();

Blog

Get information about a given blog

Blog blog = client.blogInfo("seejohnrun.tumblr.com");
blog.getTitle();

And then you can use either the client approach, or make calls on the blog. These two are equivelant:

List<User> users = client.blogFollowers();
List<User> users = blog.followers();

Same with likes, etc:

// All return List<Post>
blog.posts();
blog.queuedPosts();
blog.draftPosts();
blog.submissions();

It's easy to get get the avatar of a blog too:

blog.avatar(); // String

And follow/unfollow blogs:

blog.follow();
blog.unfollow();

Post

Again:

post.like();
post.unlike();

// or
client.postLike(postId, reblogKey);
client.postUnlike(postId, reblogKey);

Maybe you want to delete a post, or reblog it?

// Delete
post.delete();

// Reblog
post.reblog();

And editing posts is equally easy:

post.setTitle("hello");
post.save();

// or if you like..
Map<String, String> detail = new HashMap<String, String>();
detail.put("title", "hello");
client.postEdit(blogName, postId, detail);

Just as easy as creating them:

QuotePost post = client.newPost(blogName, QuotePost.class);
post.setQuote("hello world");
post.save();

// or if you like...
Map<String, String> detail = new HashMap<String, String>();
detail.put("quote", "hello world");
detail.put("type", "quote");
client.postCreate(blogName, detail);

Tagged

All of the posts tagged a given thing:

for (Post post : client.tagged("lol")) {
  post.getId();
}

Pagination

Pagination and additional options are on most calls, and you can just pass them to the overloaded form:

Map<String, Integer> options = new HashMap<String, Integer>();
options.put("limit", 2);
options.put("offset", 5);
List<Post> posts = blog.posts(options);

Errors

Any connection errors will raise a JumblrException, which you can get more information from:

catch (JumblrException ex) {
    System.out.println("(" + ex.getResponseCode().toString() + ") " + ex.getMessage());
}

Gradle

compile 'com.tumblr:jumblr:0.0.11'

Maven

<dependency>
  <groupId>com.tumblr</groupId>
  <artifactId>jumblr</artifactId>
  <version>0.0.11</version>
</dependency>

Runnings Tests

mvn test

More detail?

Pop out that JavaDoc - full documentation awaits.

Or you can use our hosted copy at: http://tumblr.github.io/jumblr/javadoc/

Also see the documentation for the Tumblr API itself.

Builds

We supply some JAR builds you can use if you're not a fan of mvn. You can grab them with (or without) dependencies from the project page.

Reporting issues

Please refer to the GitHub issue tracker at: https://github.com/tumblr/jumblr/issues

Copyright and license

Copyright 2015 Tumblr, Inc.

Licensed under the Apache License, Version 2.0 (the License); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations.

jumblr open issues Ask a question     (View All Issues)
  • almost 4 years Post audio with file
  • about 4 years unable to get user full detail
  • about 4 years different number of followers, depending on how fetched
  • over 4 years jumblrClient.blogAvatar() gets wrong response code?
  • over 4 years Question: How can I get the body_abstract element of post?
  • over 4 years The method "getDetail()"
  • over 4 years Error parsing API error response
  • almost 5 years Question: New release soon?
  • almost 5 years Update to com.github.scribejava?
  • almost 5 years Update Hosted JavaDoc to Latest Version
  • almost 5 years Post attribute 'reblogged_root_name' not in Jumblr
  • almost 5 years java.lang.IllegalStateException: Expected NUMBER but was BOOLEAN
  • about 5 years Post.class missing getLikedTimestamp()
  • about 5 years com.tumblr.jumblr.exceptions.JumblrException: Not Authorized when performing PhotoPost.save()
  • almost 6 years JSON output
  • over 6 years Inconsistent encoding
  • over 7 years PhotoPost should support byte[] or InputStream types
jumblr open pull requests (View All Pulls)
  • Allows setting of the Source Title and Source URL
  • Update to com.github.scribejava
  • Update Javadoc and Website
  • Root reblogging information (reblogged_root_id & reblogged_root_name) added to Post
  • Return number of Draft and Queued Posts for a blog
  • Allow VideoPost to return the actual video_url
  • Get blogs fields from user/info
  • always use UTF-8 for message conversion, fix #43
  • Added automatic authentication
  • Avatar requests set no-follow-redirects locally
jumblr questions on Stackoverflow (View All Questions)
  • Jumblr Implementation android
  • Jumblr API gives bad request while posting image to Tumblr
  • Using Jumblr API for android
  • Jumblr Tumblr API Credentials.json file
  • Getting html of tumblr post using jumblr
  • Get the URL of an image using jumblr
  • Tumblr photo posting by using jumblr
  • Jumblr Post photo on Android
  • Can't find .jar file for jumblr (Tumblr android wrapper)
  • Android-Tumblr API - Jumblr for Android [OAuthConnectionException]
  • OAuth - Jumblr ¿How to change the account that I'm logged in?
  • Jumblr Api query returns maximum of 50 Posts
  • Tumblr API - Jumblr for Android [OAuthConnectionException]
  • ClassNotFound Exception for Jumblr
  • Jumblr create Photoset post
jumblr list of languages used
Other projects in Java
Powered by Autocode - Instant Webhooks, Scripts and APIs
Autocode logo wordmark