/** * */ package com.gmail.charleszq.picorner.task.ig; import org.jinstagram.Instagram; import org.jinstagram.auth.InstagramAuthService; import org.jinstagram.auth.model.Token; import org.jinstagram.auth.model.Verifier; import org.jinstagram.auth.oauth.InstagramService; import org.jinstagram.entity.users.basicinfo.UserInfo; import org.jinstagram.model.Scope; import android.app.Activity; import android.content.Context; import android.util.Log; import com.gmail.charleszq.picorner.PicornerApplication; import com.gmail.charleszq.picorner.task.AbstractContextAwareTask; import com.gmail.charleszq.picorner.utils.IConstants; /** * @author charleszq@gmail.com * */ public class InstagramOAuthTask extends AbstractContextAwareTask<String, Integer, Token> { public InstagramOAuthTask(Context ctx) { super(ctx); } @Override protected Token doInBackground(String... params) { String code = params[0]; StringBuilder sb = new StringBuilder(); sb.append(Scope.COMMENTS.toString()).append(" "); //$NON-NLS-1$ sb.append(Scope.LIKES.toString()).append(" "); //$NON-NLS-1$ sb.append(Scope.RELATIONSHIPS.toString()); InstagramService service = new InstagramAuthService() .apiKey(IConstants.INSTAGRAM_CLIENT_ID) .apiSecret(IConstants.INSTAGRAM_CLIENT_SECRET) .scope(sb.toString()).callback(IConstants.IG_CALL_BACK_STR) .build(); Verifier v = new Verifier(code); try { Token token = service.getAccessToken(null, v); if (token != null) { Instagram ig = new Instagram(token); UserInfo user = ig.getCurrentUserInfo(); long userId = user.getData().getId(); PicornerApplication app = (PicornerApplication) ((Activity) mContext) .getApplication(); app.saveInstagramAuthToken(userId, token.getToken(), token .getSecret(), token.getRawResponse(), user.getData() .getProfile_picture()); } return token; } catch (Exception e) { Log.e(TAG, "Instagram oauth failed: " + e.getMessage()); //$NON-NLS-1$ return null; } } }