2016-12-22 1 views
0

현재 Blogger API가있는 Android의 사용자 블로그 목록 (현재 사용자의 블로그)을 얻으려고합니다. 이 튜토리얼의 메소드 Authorizing Google for REST APIs을 사용하여 로그인 한 계정에 OAuth2 토큰을 연결했습니다.Blogger API를 사용하여 현재 사용자의 블로그 목록을 검색하는 방법

블로거 API 문서는 인증 헤더로 OAuth2를 토큰을 제공 한 경우 설명으로, selfuserID을 내가 요청이 https://www.googleapis.com/blogger/v3/users/userId/blogs 으로 목록을 가져올 수 있음을, 내가 대체 할 수 있다고 말한다 :

https://www.googleapis.com/blogger/v3/users/self/blogs

인증 GET : 여기에/*의 OAuth 2.0 토큰을 */

그래서 나는 공을 만든 1,239,사용하여 발리는 :

String url = "https://www.googleapis.com/blogger/v3/users/self/blogs"; 
    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() { 
     @Override 
     public void onResponse(JSONObject response) { 
      tv.setText("Response is: " + response.toString()); 
     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 

     } 
    }){ 
     @Override 
     public Map<String, String> getHeaders() throws AuthFailureError { 
      HashMap<String, String> headers = new HashMap<String, String>(); 
      headers.put("Authorization", mToken); 
      return headers; 
     } 
    }; 
    MySingleton.getInstance(this).addToRequestQueue(jsonObjectRequest); 

MySingleton 클래스는 Setting Up a Request Queue에서 복사 :

public class MySingleton { 
private static MySingleton mInstance; 
private RequestQueue mRequestQueue; 
private ImageLoader mImageLoader; 
private static Context mCtx; 

private MySingleton(Context context) { 
    mCtx = context; 
    mRequestQueue = getRequestQueue(); 

    mImageLoader = new ImageLoader(mRequestQueue, 
      new ImageLoader.ImageCache() { 
     private final LruCache<String, Bitmap> 
       cache = new LruCache<String, Bitmap>(20); 

     @Override 
     public Bitmap getBitmap(String url) { 
      return cache.get(url); 
     } 

     @Override 
     public void putBitmap(String url, Bitmap bitmap) { 
      cache.put(url, bitmap); 
     } 
    }); 
} 

public static synchronized MySingleton getInstance(Context context) { 
    if (mInstance == null) { 
     mInstance = new MySingleton(context); 
    } 
    return mInstance; 
} 

public RequestQueue getRequestQueue() { 
    if (mRequestQueue == null) { 
     // getApplicationContext() is key, it keeps you from leaking the 
     // Activity or BroadcastReceiver if someone passes one in. 
     mRequestQueue = Volley.newRequestQueue(mCtx.getApplicationContext()); 
    } 
    return mRequestQueue; 
} 

public <T> void addToRequestQueue(Request<T> req) { 
    getRequestQueue().add(req); 
} 

public ImageLoader getImageLoader() { 
    return mImageLoader; 
} 
} 

이 코드를 실행 한 후, 그것이 내가 로그인하고 있지 않다라고 말하는 나에게 401 오류를 제공 내가 무슨 일을하고있는 중이 야. ?

미리 감사드립니다.

답변

0

내게 부주의합니다. Authorization 헤더의 형식이 잘못되었습니다. *token*이 아닌 Bearer *token*이어야합니다.