站起来活动活动吧~

编程开发

向谷歌搜索引擎主动推送网页的教程 Google Indexing API 接口实现

2020年03月10日 21:28:42 · 本文共 1,762 字阅读时间约 6分钟 · 15,463 次浏览
向谷歌搜索引擎主动推送网页的教程 Google Indexing API 接口实现

谷歌搜索引擎作为全球第一的搜索引擎早就支持了站长主动推送的功能,只不过不是面向普通用户的可视化界面,而是通过编程API接口实现的,有很多站长并不是专业的开发者,但由于谷歌需要验证网站所有权,所以我不能直接做一个可视化界面让站长自己填写自己的秘钥,所以只能对谷歌的接口进行二次封装,以降低使用的难度。

源码项目地址:https://github.com/NeilRen/GoogleIndexing

环境要求

首先,我是以Java为平台进行的封装,JDK版本为1.8,其他程序可能需要中间层才能打通,还不如自己实现,其他编程语言的同学我也没有办法,这个世界上编程语言太多了。

其次,谷歌的Google Indexing API接口在中国大陆无法访问,所以程序需要运行在可以访问谷歌的网络环境中。

前提条件

首先,你需要一个谷歌账号。你的项目是Java的,并且JDK为1.8以上。

创建 Google API 项目

然后在向 Indexing API 发送请求之前,您需要告知 Google 您的客户端并激活对 Indexing API 的访问权限。谷歌为我们提供了一个设置向导,设置向导会引导您在 Google API 控制台中创建项目、启用 Indexing API 以及创建凭据。

首先先跟着向导创建一个项目

Google Indexing API 设置向导

然后转到凭据,添加凭据

Google Indexing API 添加凭证

添加的凭据选择Indexing API、网页服务器(例如 node.js、Tomecat),选择应用数据,点击“我需要哪些凭据?”到下一页

Google Indexing API 为项目添加凭证

创建一个服务账号,名称可以自己起一个名字,秘钥类型选择JSON,点击继续

Google Indexing API 创建服务账号

选择创建无角色账号即可

Google Indexing API 创建无角色账号

这时就会自动下载一个json文件,这个就是我们的私钥,要保存好

Google Indexing API 秘钥

在 Search Console 中验证网站所有权

我们还需要到 Search Console 添加我们的网站,验证所有权,验证成功以后,注意我们要去旧版的控制台,不要去新版的控制台!然后添加所有者

Google 旧版控制台

所有者的邮箱填写我们上一步获得的私钥JSON文件中的邮箱地址。

Google Indexing API 秘钥JSON=Google 添加网站所有者

在自己的项目中安装依赖

如果您使用Apache Maven来管理Java项目,只需在项目的`pom.xml`文件加入相应的依赖项即可。您只需在`pom.xml`中声明以下依赖:

<dependency>
    <groupId>net.renfei</groupId>
    <artifactId>googleindexing</artifactId>
    <version>1.0.0</version>
</dependency>

编写代码调用服务,在实例化GoogleIndexing的时候,需要传一个String参数,这个参数是私钥JSON文件所在的文件地址:

import com.alibaba.fastjson.JSON;
import com.google.api.services.indexing.v3.model.UrlNotificationMetadata;
import net.renfei.googleindexing.GoogleIndexing;
import net.renfei.googleindexing.entity.UrlNotification;
import net.renfei.googleindexing.entity.UrlNotificationType;
public class Demo {
    public static void main(String[] args) {
        try {
            GoogleIndexing googleIndexing = new GoogleIndexing("/Users/renfei/Google/Ren-Fei-5a8df7c2b912.json");
            UrlNotification urlNotification = new UrlNotification();
            urlNotification.setUrl("https://www.renfei.net");
            urlNotification.setType(UrlNotificationType.URL_UPDATED);
            UrlNotificationMetadata urlNotificationMetadata = googleIndexing.publish(urlNotification);
            System.out.printf(JSON.toJSONString(urlNotificationMetadata));
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

后续如果用的人多,我还会再发布百度的推送。

商业用途请联系作者获得授权。
版权声明:本文为博主「任霏」原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.renfei.net/posts/1003342
评论与留言

以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。

能给个php代码吗,用在wordpress网站

任霏 站点官方 回复

我不太会PHP,这个确实比较复杂,里面使用了谷歌的SDK包,并不是简单的请求接口,我恐怕没有能力翻译为 PHP 版本。

是不是直接访问这个json就可以推送了。

能不能在代码那里详细解释一下啊,没完全懂呀

微信搜一搜:任霏博客