Hubspot APIを使用したタグの更新


コミュニティにこんにちは!
私の名前はアルバート湖ソリアーノです、私はavastソフトウェアのウェブ開発者です、そして、これは私の最初のdev . postです.私はいくつかのあなたの役に立つことを願って!
今日はHubspotタグとHubspotのAPIを使って記事を自動的にタグ付けする方法について話します.
Hubspotタグが何であるかを知らない人にとっては、ドキュメントの内容は以下の通りです.

Tags allow you to manage your blog posts by subject. Once you've added tags to your posts, you can customize your templates to link to a feed of all posts by tag. You can also add a post filter module so visitors can filter posts by tag.


タグの追加は、通常、コンテンツの作者がタグを付けたり、複数のタグを持つ記事を手動でタグ付けするマニュアルプロセスです.それはHubspotの非常に単純なプロセスですが、何を一度にいくつかの記事をタグ付けする必要がある場合は?
手動で記事の数百のタグ付けは非常に時間がかかるが、幸いにも我々は自動的に記事をタグ付けするためにHubspotのAPIを使用することができます.
まず最初にすべきことは、新しいタグのIDを見つけることです.HubspotがタグIDを取得する明確な方法を提供していないので、これは少しトリッキーですが、すべてのタグとその情報(名前、IDなど)を一覧表示するには、APIを使用して見つけることができます.
タグIDを取得するには、HubspotのAPIテストコールを使ってタグからデータを取得します.

APIドキュメントに移動し、テストコールを実行する


テストコールはAPIキーを必要とします.APIキーを取得するには、Hubspot、設定、APIキーに移動します.
APIキーを持っているので、HubspotのAPIドキュメント(here)に行き、「すべてのブログタグを取得」機能を見つけて、それを実行してください.
レスポンスは次のようになります.

あなたがしなければならないすべてはあなたのタグを見つけて、IDをコピーすることです.

ブログからすべてのブログ記事を取り戻してください


これにアプローチする多くの方法がありますが、私たちのブログからのすべてのブログ記事を検索し、それらを配列に格納することになります.その後、各ブログのタグを更新し、Hubspotの情報を更新するAPIを呼び出します.
すべてのブログ記事を取得し、コードに格納するには、次のコードを使用します(this repositoryにすべてのコードが見つかります).
function callApi(){


  var options = {
  method: 'GET',
    url: 'https://api.hubapi.com/cms/v3/blogs/posts',
    qs: {hapikey: accountKey, limit: limit, offset: offset},
    headers: {accept: 'application/json'}
  };


  request(options, function (error, response, body) {
    if (error) throw new Error(error);

    const res = JSON.parse(response.body)
    const posts = res.results

    isEnd = posts.length === 300 ? false : true

    posts.forEach(element => {
      offset++
      //Add here any filtering options you want. For example, now I select the blogs to update based on the URL as I have different domains in my account. Feel free to change this logic to something that suits better your needs
      if(element.url.includes(domainURL)){
        blogs.push(element)
      }
    });

    checkIfFurtherNeeded();

  });
}
前のコードはブログの配列に私たちのすべてのブログ記事を格納します.それから、まだ処理するブログがあるか、タグを更新し始めることができるかどうかチェックする関数CheckiffurtherneeDind ()を実行します.
私が私のアカウントで異なるドメインを持っているので、この例ではURLでブログをフィルタリングしています.APIは私のアカウント内のすべてのブログ記事を返すが、それは私がすべてを更新する必要はありません、私はいくつかのロジックに従ってブログをフィルタリングすることができますし、必要なものだけを更新することができます.

ブログ投稿の更新タグ


一度私たちのブログの記事を持って、それはタグのリストに新しいタグを追加する時間です.そのためには、次のコードを使用できます.
/**
 * updateHubTags Evaluates is a blog post includes the tag to be added and calls the function to do it
 */
function updateHubTags() {
  blogs.forEach(post =>{
    if(!post.tagIds.includes(newTagId)){
      UpdateTag(post)
    } 
  }) 
}


/**
 * UpdateTag Executes a call to Hubspot's API en processes the data
 * @param  {Object} blog This object includes the information of the blog post where we will add the tag
 */
function UpdateTag(blog){

  //Update a blog post
  var request = require("request");

  blog.tagIds.push(newTagId) //Add new tag to the array of tag

  var options = {
    method: 'PATCH',
    url: `https://api.hubapi.com/cms/v3/blogs/posts/${blog.id}`,
    qs: {hapikey: accountKey},
    headers: {accept: 'application/json', 'content-type': 'application/json'},
    body: {
      tagIds: blog.tagIds
    },
    json: true
  };

  request(options, function (error, response, body) {
    if (error) throw new Error(error);

    console.log(`Article ${blog.htmlTitle} updated`);
  });
}
そして、それはすべてです!上記のコードを使用すると、自動的に特定のタグを使用してブログの投稿をタグ付けすることができる、コンテンツの著者に多くの時間を節約できます.
心に留めておくべきことがいくつかあります.
  • 変数AccountTkeyはAPIキーを含めるべきです.
  • Hubspotのリクエストは300個の要素だけを返すことに注意してください(しかし、上記のコードはすべてのブログ記事が得られるまで数回リクエストをすることによって解決します).
  • 場合は、ブログをフィルタすることができます.上の例では、同じアカウントに異なるドメインを持っているので、ブログをURLでフィルタリングします.
  • すべてのコードは私のgithubアカウントにあります.

    アルベッチ / APIスクリプト


    JSスクリプトは、APIを使用してHubspotで異なる操作を実行する


    APIスクリプト


    スクリプトフォルダーに含まれるスクリプトは、HubspotのAPIで別のタスクを行うのに役立ちます

    要件


    スクリプトを使用するには、次のようになります.
    インストールされる
  • nodejs.このリンクからインストールできます.
  • Hubspot口座.
  • あなたのHubspot口座からのAPIキー.詳細はthis linkに従ってください.
  • スクリプトの実行方法


    スクリプトを実行するには、端末へのアクセスとnode script-name.jsの実行
    注意してくださいスクリプトは、必要な呼び出しやデータの数に応じて実行するいくつかの時間がかかることがあります.

    スクリプト


    ブログ柱にタグを加えてください


    複数のブログ記事にタグを追加する必要がある場合は、スクリプトtag-update.jsを使用できます
    このスクリプトは、あなたのアカウントからすべてのブログの記事を投稿するために必要な回数としてAPIを呼び出します.
    View on GitHub
    コードに貢献すること自由に、私はそれが多くの異なる方法で最適化することができます確信している!