package com.codepath.apps.tumblrsnap; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import org.scribe.builder.api.Api; import org.scribe.builder.api.TumblrApi; import android.content.Context; import android.graphics.Bitmap; import com.codepath.oauth.OAuthBaseClient; import com.loopj.android.http.AsyncHttpResponseHandler; import com.loopj.android.http.RequestParams; public class TumblrClient extends OAuthBaseClient { public static final Class<? extends Api> REST_API_CLASS = TumblrApi.class; public static final String REST_URL = "http://api.tumblr.com/v2"; public static final String REST_CONSUMER_KEY = "BcnUeYPIxBaVCz5sYcs4SkytRqM8azgLclb1PUpeFcknic9RYY"; public static final String REST_CONSUMER_SECRET = "FoiHHbknPRFeyiaBpOxizSGzbYsflp6DiFfwBi85kCYEznKGGh"; public static final String REST_CALLBACK_URL = "oauth://tumblrsnap"; public TumblrClient(Context context) { super(context, REST_API_CLASS, REST_URL, REST_CONSUMER_KEY, REST_CONSUMER_SECRET, REST_CALLBACK_URL); } public void getTaggedPhotos(AsyncHttpResponseHandler handler) { RequestParams params = new RequestParams(); params.put("tag", "cptumblrsnap"); params.put("limit", "20"); params.put("api_key", REST_CONSUMER_KEY); client.get(getApiUrl("tagged"), params, handler); } public void getUserPhotos(AsyncHttpResponseHandler handler) { RequestParams params = new RequestParams(); params.put("type", "photo"); params.put("limit", "20"); params.put("api_key", REST_CONSUMER_KEY); client.get(getApiUrl("user/dashboard"), params, handler); } public void getUserInfo(AsyncHttpResponseHandler handler) { client.get(getApiUrl("user/info"), null, handler); } public void createPhotoPost(String blog, File file, AsyncHttpResponseHandler handler) { RequestParams params = new RequestParams(); params.put("type", "photo"); params.put("tags", "cptumblrsnap"); try { params.put("data", file); } catch (FileNotFoundException e) { e.printStackTrace(); } client.post(getApiUrl(String.format("blog/%s/post?type=photo&tags=cptumblrsnap", blog)), params, handler); } public void createPhotoPost(String blog, Bitmap bitmap, final AsyncHttpResponseHandler handler) { RequestParams params = new RequestParams(); params.put("type", "photo"); params.put("tags", "cptumblrsnap"); ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); final byte[] bytes = stream.toByteArray(); params.put("data", new ByteArrayInputStream(bytes), "image.png"); client.post(getApiUrl(String.format("blog/%s/post?type=photo&tags=cptumblrsnap", blog)), params, handler); } }