Arduino Polska Forum
Licznik YouTubera - problem z API - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Sieciowe Protokoły i Urządzenia (https://forum.arduinopolska.pl/dzial-sieciowe-protoko%C5%82y-i-urz%C4%85dzenia)
+--- Wątek: Licznik YouTubera - problem z API (/watek-licznik-youtubera-problem-z-api)



Licznik YouTubera - problem z API - ANT - 09-07-2021

Witam,

Jakiś czas temu zbudowałem sobie tzw, licznik YouTubera, pokazujący mi ilość subskrypcji i odwiedzin na moim kanale.

Działało mi to kilka miesięcy bez zarzutu. Któregoś dnia moduł przestał odczytywać dane z API YouTuba.
Tak jakby coś się zmieniło w sposobie komunikacji z API YouTube.

Poniżej podaję program testujący połączenie z API YouTube.
Program zatrzymuje się w pętli nr 1 na instrukcji:  if (api.getChannelStatistics(CHANNEL_ID))

Tak jakby nie mógł dostać się na mój kanał YT.
W statystykach API mojego kanału widzę, że jednak moduł ESP nawiązuje próbę komunikacji.
Nie otrzymuję natomiast informacji zwrotnej.

Czy coś się zmieniło z tym API o czym ja po prostu niewiem?
Projekt leży u mnie od ponad roku i nie mogę znaleźć rozwiązania...

Kod:
#include <WiFiUdp.h>
#include <WiFiClientSecure.h>
#include <ESP8266WiFi.h>
#include <ArduinoJson.h>
#include <YoutubeApi.h>

char ssid[] = "xxxxxxxx";
char password[] = "xxxxxxxxx";

#define API_KEY "xxxxxxxxxxxxxxxxxxxxxxxx"
#define CHANNEL_ID "xxxxxxxxxxxxxxxxxxxx"

WiFiClientSecure client;
YoutubeApi api(API_KEY, client);

unsigned long api_mtbs = 10000;
unsigned long api_lasttime;

long subs = 0;

void setup()
{
  Serial.begin(115200);

  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print(".");
    delay(500);
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  IPAddress ip = WiFi.localIP();
  Serial.println(ip);
}

void loop()
{
  if (millis() - api_lasttime > api_mtbs)
  {
    Serial.println("Petla_1");

    if (api.getChannelStatistics(CHANNEL_ID))
    {
      Serial.println("Petla_2");

      Serial.print("Subscriber Count: ");
      Serial.println(api.channelStats.subscriberCount);
    }
    api_lasttime = millis();
  }
}