gpt4 book ai didi

java - 如何在 blogger api 中按标签获取博客文章

转载 作者:搜寻专家 更新时间:2023-11-01 09:22:00 25 4
gpt4 key购买 nike

我使用 blogger api在我的 Android 应用程序中,通过使用 REST API 作为 JSON 对象将博客内容与其集成。

我需要按标签检索/过滤帖子。在大多数博客中,通常是博客标签的链接

https://abtallaldigital.blogspot.com/search/label/Food
https://abtallaldigital.blogspot.com/search/label/Technology

我阅读了所有 API 文档,我看到它与博客、帖子、评论、页面、用户有关,但其中没有任何内容可处理标签/类别。

应用程序中有一个类 BloggerAPI 用于检索博客

package abtallaldigital.blogspot.com.dummyapp;

import retrofit2.Call;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.http.GET;
import retrofit2.http.Url;

public class BloggerAPI {

public static final String BASE_URL =
"https://www.googleapis.com/blogger/v3/blogs/2399953/posts/";
public static final String KEY = "THE-KEY";

public static PostService postService = null;

public static PostService getService() {

if (postService == null) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
postService = retrofit.create(PostService.class);
}

return postService;
}

public interface PostService {
@GET
Call<PostList> getPostList(@Url String url);
}
}

这样使用

  private void getData(){

String url = BloggerAPI.BASE_URL + "?key=" + BloggerAPI.KEY;

if(token != ""){
url = url+ "&pageToken="+token;
}
if(token == null){
return;
}

final Call<PostList> postList = BloggerAPI.getService().getPostList(url);
postList.enqueue(new Callback<PostList>() {
@Override
public void onResponse(Call<PostList> call, Response<PostList> response) {
PostList list = response.body();
token = list.getNextPageToken();
items.addAll(list.getItems());
adapter.notifyDataSetChanged();
Toast.makeText(MainActivity.this, "Sucess", Toast.LENGTH_LONG).show();
}

@Override
public void onFailure(Call<PostList> call, Throwable t) {
Toast.makeText(MainActivity.this,"Error occured",Toast.LENGTH_LONG).show();
Log.i(TAG, "onFailure: "+t.toString());
}
});

}

我在谷歌上搜索如何获取任何标签的 RSS Feed 链接,我找到了这个结果

https://example.blogspot.com/feeds/posts/default/-/label/?alt=rss

这将获取任何标签的博文,并替换链接中的“标签”一词

最佳答案

搜索查询 (q=) 选项

如果您想获得带有特定标签的帖子,您可以使用此查询:

获取 https://www.googleapis.com/blogger/v3/blogs/2399953/posts/search?q=label:label1&key=THE-KEY

如果您想要获得标记为“this”以及“that”的帖子(如果其中一个不匹配,则不匹配)您可以使用:

获取 https://www.googleapis.com/blogger/v3/blogs/2399953/posts/search?q=label:this+label:that&key=THE-KEY

在带空格的标签周围使用引号:

获取 https://www.googleapis.com/blogger/v3/blogs/15045980/posts/search?q=label%3A%22James+Whittaker%22&key=THE-KEY

可能是按标签获取帖子的更好选择

来源:https://developers.google.com/blogger/docs/3.0/reference/posts/list

HTTP 请求:

获取 https://www.googleapis.com/blogger/v3/blogs/blogId/posts

在可选参数中有 labels 参数:

labels string 以逗号分隔的要搜索的标签列表。

HTTP 请求示例(使用 Google 测试博客的 blogId):

获取 https://www.googleapis.com/blogger/v3/blogs/15045980/posts?labels=James+Whittaker&key=THE-KEY

请注意,使用此选项时,不应包含标签周围的引号。

如评论中所述,要获取帖子的下一页,请存储给定的 nextPageToken,并将其放入 pageToken 参数中,例如:

获取 https://www.googleapis.com/blogger/v3/blogs/15045980/posts?labels=James+Whittaker&pageToken=CgkIChiAjpb65CUQ3KqWBw&key=THE-KEY

关于java - 如何在 blogger api 中按标签获取博客文章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54248434/

25 4 0