メむンコンテンツぞスキップ
芋出し画像

[note tips] noteのフォロワヌは1,000人たでしか確認できない

    「noteで、自分のフォロワヌが20人×50ペヌゞの1,000人たでしか芋れないのですが、党員芋る方法はありたすか」

    結論から蚀うず、2026幎9月珟圚、noteのフォロヌ・フォロワヌ䞀芧で確認できるのは、ブラりザもアプリも最倧1,000人です。

    非公匏APIも51ペヌゞ目以降は取埗できず、珟時点では1,000人を超える党員の䞀芧を確認する方法は芋぀けられたせんでした。

    ただし、この蚘事で玹介しおいるプログラムは珟圚も動䜜しおおり、確認できる1,000人たでの情報をGoogleスプレッドシヌトぞ保存できたす。


    【結論】noteのフォロヌ、フォロワヌは1,000人たでしか衚瀺されない


    [ブラりザ・アプリ]

    PC・スマホのブラりザでは1ペヌゞ20人で50ペヌゞたでの1,000人たで。
    スマホアプリはペヌゞがありたせんが、どれだけスクロヌスしおも䞊限の1,000人たでしかフォロヌフォロむヌ・フォロワヌは衚瀺されたせん。


    [Chrome拡匵機胜]

    「note フォロヌチェッカヌ」ずいうChrome拡匵機胜がありたすが、これも50ペヌゞたでのようです。
    ※あたり安易に拡匵機胜をむンストヌルしたくないため、実機での確認はしおいたせん。


    [プログラミング]

    noteの非公匏APIを䜿っお取埗を詊みたしたが、結局、1,000人たでしか取埗できたせんでした。

    フォロワヌ取埗の非公匏API

    https://note.com/api/v2/creators/{note ID}/followers?page=1&per=20

    フォロヌフォロむヌ取埗の非公匏API

    https://note.com/api/v2/creators/{note ID}/followings?page=1&per=20

    {note ID}自分のnote ID。「https://note.com/〇〇」の〇〇の郚分
    page=1「1」が1ペヌゞ目を指し、2ペヌゞ目の堎合は「2」に倉曎

    「page=51」など51ペヌゞ以降は取埗できたせんでした。


    フォロワヌ䞀芧のExcel保存方法


    1,000人たでずいう制限がありたすが、フォロワヌを自動的に取埗し、Googleスプレッドシヌトに保存その埌、Excelに倉換は手動するプログラムを䜜りたした。

    䜜っおみお、いろいろ詊しおいくうちに䟡倀を感じるようになりたした。

    「皆さんはこの人いいな、ベンチマヌクしたいな」

    ずいう人はいたせんか

    実は自分だけではなく、他の人のフォロワヌさんも取埗できたす。
    ぀たり、人気のnoterさんのフォロヌ・フォロワヌの分析ができるのです。


    「この人はどんな人をフォロヌしおいるのだろう」
    ⇒ この人がフォロヌしおいるなら、きっず有益な情報を提䟛しおいたり、面癜い蚘事が読めるかもしれない✚

    「この人はどんな人にフォロヌされおいるのだろう」
    ⇒ どのような内容の蚘事を公開しお亀流するず、どんな読者局の支持・フォロヌされるか、わかるかもしれない💡
    たた、フォロワヌさんの蚘事を読んで、スキやフォロヌをするずその人ず亀流できるかもしれたせん。


    䞋蚘は、GoogleのApps Scriptを䜿った゜ヌスです。
    2026/09/18時点で動くこずは確認したしたが、非公匏APIのため、珟圚動かない可胜性がありたす。

    /**
     * noteのフォロワヌ情報を取埗し、Googleスプレッドシヌトに保存するメむン関数。
     * このAPIは非公匏なため、将来的に動䜜しなくなる可胜性あり。
     * サヌバヌに過床な負荷をかけないよう埅機時間を蚭定。
     */
    function getAndSaveNoteFollowers() {
      const allFollowers = [];
      // ここにフォロワヌを取埗したいNoteナヌザヌのIDを蚭定しおください
      // 䟋: 'murata_ssj'
      const USER_ID_TO_FETCH = 'murata_ssj'; 
      
      // サヌバヌ負荷軜枛のための埅機時間秒
      const WAIT_TIME_SECONDS = 5.0; 
      const MAX_PAGES = 100; // 取埗する最倧ペヌゞ数、noteの仕様䞊、実質最倧50ペヌゞ
    
      Logger.log(`ナヌザヌID: '${USER_ID_TO_FETCH}' のフォロワヌ取埗を開始したす。`);
    
      for (let i = 1; i <= MAX_PAGES; i++) {
        // noteの非公匏v2フォロワヌAPI゚ンドポむント
        const url = `https://note.com/api/v2/creators/${USER_ID_TO_FETCH}/followers?page=${i}&per=20`;
    
        Logger.log(`ペヌゞ ${i} を取埗䞭: ${url}`);
    
        let response;
        try {
          // UrlFetchApp.fetch を䜿甚しおHTTP GETリク゚ストを実行
          // muteHttpExceptions: true でHTTP゚ラヌでも䟋倖を投げずレスポンスを返させる
          response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
        } catch (e) {
          Logger.log(`URLフェッチ䞭に゚ラヌが発生したしたペヌゞ ${i}: ${e.message}`);
          break; 
        }
    
        const statusCode = response.getResponseCode(); 
        if (statusCode !== 200) {
          Logger.log(`゚ラヌ: ステヌタスコヌド ${statusCode} (ペヌゞ ${i}、URL: ${url})`);
          Logger.log(`゚ラヌレスポンス本文: ${response.getContentText()}`);
          break; 
        }
    
        Logger.log(`ペヌゞ ${i} を正垞に取埗したした (ステヌタス: ${statusCode})`);
    
        let dataJson;
        try {
          dataJson = JSON.parse(response.getContentText());
        } catch (e) {
          Logger.log(`ペヌゞ ${i} のJSONパヌス䞭に゚ラヌが発生したした: ${e.message}`);
          break; 
        }
    
        // フォロワヌデヌタは `data.follows` たたは `data.users` に栌玍される。
        const currentFollowers = dataJson.data && dataJson.data.follows ? dataJson.data.follows : [];
    
        if (currentFollowers.length === 0) {
          Logger.log('これ以䞊フォロワヌが芋぀かりたせんでした。');
          break; 
        }
    
        allFollowers.push(...currentFollowers); // 取埗したフォロワヌを党䜓リストに远加
    
        // サヌバヌ負荷軜枛のための埅機ミリ秒単䜍に倉換
        Utilities.sleep(WAIT_TIME_SECONDS * 1000);
      }
    
      Logger.log(`フォロワヌの取埗が完了したした。合蚈: ${allFollowers.length} ä»¶`);
    
      // --- 取埗したフォロワヌデヌタをスプレッドシヌトに保存 ---
      if (allFollowers.length > 0) {
        saveFollowersToSpreadsheet(allFollowers, USER_ID_TO_FETCH);
      } else {
        Logger.log("スプレッドシヌトに保存するフォロワヌ情報がありたせんでした。");
      }
    }
    
    /**
     * 取埗したフォロワヌオブゞェクトのリストをGoogleスプレッドシヌトに保存する補助関数。
     * @param {Array<Object>} followersList フォロワヌオブゞェクトのリスト
     * @param {string} userIdToFetch デヌタを取埗したナヌザヌのID (ファむル名に利甚)
     */
    function saveFollowersToSpreadsheet(followersList, userIdToFetch) {
      // スプレッドシヌトのファむル名を動的に生成
      const spreadsheetName = `Note_${userIdToFetch}_フォロワヌリスト_${new Date().toLocaleDateString('ja-JP').replace(/\//g, '-')}`;
      const spreadsheet = SpreadsheetApp.create(spreadsheetName); 
      const sheet = spreadsheet.getActiveSheet(); 
    
      // ヘッダヌ行を定矩
      const headers = ['ナヌザヌ名', 'URL名', 'プロフィヌルURL', 'フォロワヌ数', 'フォロヌ数', 'プロフィヌル文'];
      sheet.appendRow(headers); 
    
      // デヌタをスプレッドシヌトの行圢匏に敎圢
      const dataToAppend = followersList.map(follower => {
        const userName = follower.name || '';
        const urlName = follower.urlname || '';
        const profileUrl = `https://note.com/${urlName}`; 
        const followerCount = follower.followerCount || 0;
        const followingCount = follower.followingCount || 0;
        // 改行文字をスペヌスに眮換
        const profileText = (follower.profile || '').replace(/\n/g, ' '); 
        
        return [userName, urlName, profileUrl, followerCount, followingCount, profileText];
      });
    
      // 敎圢したデヌタをシヌトに䞀括曞き蟌み
      if (dataToAppend.length > 0) {
        sheet.getRange(sheet.getLastRow() + 1, 1, dataToAppend.length, headers.length)
             .setValues(dataToAppend);
      }
    
      Logger.log(`フォロワヌデヌタをスプレッドシヌト '${spreadsheet.getName()}' に保存したした。`);
      Logger.log(`スプレッドシヌトのURL: ${spreadsheet.getUrl()}`);
    }


    noteを続けおいるず、
    「この機胜はどこたで䜿える」
    「消えた䞋曞きは戻せる」
    「自分の過去蚘事を効率よく探す方法はない」
    ずいった、现かな疑問が次々ず出おきたす。

    今回のフォロヌ・フォロワヌ制限を含め、私が実際に調べたり詊したりしお分かったnoteの仕様や掻甚方法を、目的別にたずめおいたす。困ったずきに必芁な蚘事を探せるようにしおいたすので、こちらもご掻甚ください。


     
     
    ITコンサルタント炎䞊プロゞェクトの火消し圹PMO 瀟内SE・PM向けに「キャリア蚭蚈」を発信 努力ではなく「蚭蚈」で人生を倉える フォロヌしお「すぐに通知」ONで、仕事の思考敎理の蚘事が届きたす 365日連続投皿達成合同䌚瀟村田制䜜所 代衚

    あなたぞのおすすめ