2016-12-22 8 views
0

現在、Blogger API(特に現在のユーザーのブログ)を使用してAndroidでユーザーのブログのリストを取得しようとしています。このチュートリアルのメソッドAuthorizing Google for REST APIsを使用して、ログインしているアカウントにOAuth2トークンをリンクさせました。Blogger APIを使用して現在のユーザーのブログのリストを取得する方法

BloggerのAPIドキュメントは、AuthorizationヘッダーなどのOAuth2トークンを提供している場合、それは説明として、selfuserIDを私は要求がhttps://www.googleapis.com/blogger/v3/users/userId/blogs でリストを取得するために作ることができることを、私は置き換えることができますことを言う:

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

認証GET:ここに/ * OAuth 2.0のトークンを*/

は、だから私は0を作りました使用してボレーは:

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*である必要があります。

関連する問題