現在、Blogger API(特に現在のユーザーのブログ)を使用してAndroidでユーザーのブログのリストを取得しようとしています。このチュートリアルのメソッドAuthorizing Google for REST APIsを使用して、ログインしているアカウントにOAuth2トークンをリンクさせました。Blogger APIを使用して現在のユーザーのブログのリストを取得する方法
BloggerのAPIドキュメントは、AuthorizationヘッダーなどのOAuth2トークンを提供している場合、それは説明として、self
でuserID
を私は要求が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エラーを与え、私は間違って何をやっています。 ?
ありがとうございます。