Arkusze
Konwertuj Google Sheets, XLSX lub CSV na skoroszyt XLSX z przypisanymi linkami.
Konwertuj linki w arkuszu Google lub przesłanym skoroszycie, używając tokenu bearer twojego konta. Wynik zawsze ma format .xlsx, także dla CSV. Linki są zastępowane w miejscu, z przypisaniem do twojego konta i opcjonalnymi campaign i label opisanymi w Linkach.
Arkusz Google jako źródło
Prześlij URL Google Sheets, który NinjaBuy może odczytać. Konwersja odczytuje wszystkie karty, nie tylko podgląd, i zapisuje migawkę dla tego zadania.
curl -sS -D sheet-headers.txt https://www.ninjabuy.com/api/v1/sheets \
-H "Authorization: Bearer $NINJABUY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--data '{"url":"https://docs.google.com/spreadsheets/d/SHEET_ID/edit","campaign":"spring-haul","label":"finds"}'XLSX lub CSV jako źródło
Najpierw zarezerwuj przesyłanie. filename musi kończyć się na .xlsx lub .csv i zawierać od 1 do 255 znaków po usunięciu otaczających spacji. bytes to dokładny rozmiar pliku w bajtach, od 1 do 20 971 520.
curl -sS https://www.ninjabuy.com/api/v1/uploads \
-H "Authorization: Bearer $NINJABUY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--data '{"filename":"finds.xlsx","bytes":12345}'Odpowiedź 201 zawiera upload_id, podpisany adres PUT url, expires_at (milisekundy od epoki Unix), max_bytes i request_id. Rezerwacja wygasa po 15 minutach. Wyślij surowy plik metodą PUT na zwrócony URL, a następnie prześlij identyfikator:
curl --fail-with-body -X PUT "$UPLOAD_URL" \
--data-binary @finds.xlsx
curl -sS -D sheet-headers.txt https://www.ninjabuy.com/api/v1/sheets \
-H "Authorization: Bearer $NINJABUY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--data '{"upload_id":"UPLOAD_ID","campaign":"spring-haul","label":"finds"}'Bezpośredni PUT korzysta z formatu odpowiedzi usługi przechowywania. NinjaBuy sprawdza przesłane bajty przy zgłaszaniu konwersji. Nieznane identyfikatory i identyfikatory innych kont zwracają 404. Zapisany obiekt musi odpowiadać zadeklarowanej liczbie bajtów; obiekt większy od zadeklarowanego rozmiaru lub przekraczający limit zwraca 413 upload-too-large, a mniejszy (ucięty) obiekt zwraca 422 invalid-workbook z wyjaśnieniem niezgodności liczby bajtów. Te kontrole odbywają się przed pobraniem i obowiązują również wtedy, gdy bajty zmienią się po sprawdzeniu metadanych. Odrzucone surowe pliki są usuwane, a zaakceptowane surowe pliki są usuwane po zapisaniu ich zweryfikowanej migawki.
Podaj dokładnie jedno źródło: url lub upload_id. Oba przyjmują opcjonalne campaign i label; async nie jest potrzebne. Obie trasy POST obsługują Idempotency-Key i zużywają po jednym miejscu we wspólnym limicie 30 wywołań na minutę. Podrzędne konwersje linków nie zużywają dodatkowych miejsc.
Zadanie i pobieranie
Zgłoszenie arkusza zwraca 202 z Location: /api/v1/jobs/JOB_ID, Retry-After: 5 i treścią:
{
"job": {
"id": "JOB_ID",
"kind": "sheet_conversion",
"status": "queued",
"poll_after_seconds": 5
},
"request_id": "REQUEST_ID"
}Odpytuj Zadania tokenem tego samego konta do stanu done lub failed, przestrzegając poll_after_seconds. Zakończone job.result zawiera kind: "sheet_conversion", counts i podpisany download_url ważny przez 15 minut. Odpytaj ponownie, aby otrzymać nowy podpis pobierania. Nieudane zadanie zawiera error i nie udostępnia częściowego pliku.
W przypadku arkusza Google job.result może też zawierać copy_url: link tylko do odczytu do dokładnej kopii w Arkuszach Google z Twoimi linkami na ich miejscu; każdy, kto ma link, może zachować własną kopię przez Plik → Utwórz kopię. copy_notes wymienia to, co powinien wiedzieć czytelnik tej kopii, na przykład że obrazy wstawione przez =IMAGE() wymagają w jego kopii jednego kliknięcia Zezwól na dostęp. download_url nadal zwraca plik XLSX. copy_counts podaje te same liczniki dla kopii; gdy pliku XLSX nie da się utworzyć, wynik zachowuje copy_url, nie ma download_url, a copy_notes podaje powód. download_notes wymienia wiersz po wierszu to, czego plik XLSX nie może zawierać z arkusza, na przykład wykresy lub drugi link w komórce.
Migawki i pliki wynikowe są przechowywane przez siedem dni po zakończeniu lub niepowodzeniu zadania. Po usunięciu tych plików zadanie nadal można odczytać wraz z jego statusem i licznikami, a pole job.result.download_url jest pomijane. Współdzielone migawki pozostają dostępne, dopóki inne zadanie ich potrzebuje. Porzucone surowe pliki są usuwane godzinę po wygaśnięciu rezerwacji przesyłania; zweryfikowany plik, dla którego nigdy nie uruchomiono zadania, traci migawkę siedem dni po wygaśnięciu rezerwacji. Usuwanie odbywa się co godzinę.
| Licznik | Znaczenie |
|---|---|
links_found | Wykryte wystąpienia linków, w tym powtórzone cele. |
converted | Wystąpienia zastąpione przypisanymi linkami. |
left_by_host | Liczniki według hosta dla linków celowo pozostawionych bez zmian. |
unresolved | Wystąpienia, których nie udało się przekonwertować i które pozostają bez zmian. |
unresolved_examples | Przykładowe nierozwiązane adresy URL. |
coverage_gap | Brakujące odpowiedzi konwersji; zawsze 0 w wygenerowanym pliku. |
Pokrycie spełnia równanie links_found = converted + sum(left_by_host) + unresolved. Linki społecznościowe, linki Google Sheets, nawigacja wewnątrz skoroszytu i istniejące linki NinjaBuy pozostają bez zmian. Każdy kandydat musi otrzymać odpowiedź przed zapisaniem wyniku; brakujące odpowiedzi powodują niepowodzenie zadania.
Zachowanie skoroszytu
Wynik zachowuje style, scalenia, rozmiary wierszy i kolumn oraz obrazy w zakresie odczytanej siatki. Fragmenty tekstu sformatowanego pozostają w komórkach bez hiperlinku komórki; komórki z linkiem używają jednej etykiety tekstowej i hiperlinku. Skoroszyt jest serializowany od nowa: wykresy, makra i inne funkcje poza siatką nie są zachowywane.
XLSX obsługuje jeden hiperlink na komórkę. Konwersja zastępuje linki w miejscu zamiast dodawać drugi link obok. Komórka z co najmniej dwoma różnymi celami linków niebędących obrazami zachowuje pierwszy jako hiperlink, a pozostałe wypisuje w notatce komórki, więc żaden cel nie ginie.
Limity
| Zasób | Maksimum |
|---|---|
| Przesłany plik XLSX lub CSV | 20 MiB; musi odpowiadać zadeklarowanej liczbie bajtów |
| Rozpakowany XLSX lub łączny źródłowy HTML Google | 64 MiB |
| Komórki w całej konwersji | 500 000 |
| Wykryte wystąpienia linków, w tym powtórzenia | 100 000 |
| Każdy obraz | 10 MiB |
| Łącznie zachowane unikatowe obrazy | 32 MiB |
| Zserializowany plik XLSX | 64 MiB |
| Rezerwacja przesyłania / podpis pobierania | Po 15 minut |
Przekroczenie limitu odczytu lub zapisu powoduje jawny błąd. Zobacz Błędy: invalid-workbook, upload-expired i upload-too-large.