E-tablolar
Google Sheets, XLSX veya CSV girdisini hesabınıza atfedilen bir XLSX çalışma kitabına dönüştürün.
Hesabınızın bearer belirtecini kullanarak bir Google E-Tablosundaki veya yüklenen çalışma kitabındaki bağlantıları dönüştürün. CSV girdisi için bile çıktı her zaman .xlsx olur. Bağlantılar, Bağlantılar sayfasında açıklandığı gibi hesabınıza atfedilerek ve isteğe bağlı campaign ve label ile yerinde değiştirilir.
Google E-Tablosu girdisi
NinjaBuy’ın okuyabildiği bir Google Sheets URL’si gönderin. Dönüştürme yalnızca görüntülenen önizlemeyi değil her sekmeyi okur ve bu iş için sabit bir anlık görüntü oluşturur.
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 veya CSV girdisi
Önce bir yükleme ayırın. filename, .xlsx veya .csv ile bitmeli ve baştaki ve sondaki boşluklar kırpıldıktan sonra 1 ile 255 karakter içermelidir. bytes, 1 ile 20.971.520 arasında, dosyanın bayt cinsinden tam boyutudur.
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}'201 yanıtı upload_id, imzalı PUT url, expires_at (Unix başlangıcından itibaren milisaniye), max_bytes ve request_id içerir. Ayırma 15 dakika sonra sona erer. Ham dosyayı döndürülen URL’ye PUT ile gönderin, ardından yükleme kimliğini gönderin:
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"}'Doğrudan PUT, depolama hizmetinin yanıt sözleşmesini kullanır. NinjaBuy, dönüştürmeyi gönderdiğinizde yüklenen baytları doğrular. Bilinmeyen veya başka hesaplara ait yükleme kimlikleri 404 döndürür. Depolanan nesne, bildirilen bayt sayısıyla eşleşmelidir; bildirilen boyuttan veya üst sınırdan büyük bir nesne 413 upload-too-large, daha küçük (kesilmiş) bir nesne ise bayt sayısı uyuşmazlığı açıklamasıyla 422 invalid-workbook döndürür. Bu kontroller indirmeden önce yapılır ve meta veri kontrolünden sonra baytlar değişirse de uygulanır. Reddedilen ham yüklemeler silinir; kabul edilen ham yüklemeler ise doğrulanmış anlık görüntüleri kaydedildiğinde silinir.
Tam olarak bir kaynak gönderin: url veya upload_id. İkisi de isteğe bağlı campaign ve label kabul eder; async alanı gerekmez. Her iki POST rotası da Idempotency-Key kabul eder ve her biri paylaşılan dakikada 30 oluşturma penceresinden bir çağrı tüketir. Alt bağlantı dönüştürmeleri ek çağrı tüketmez.
İş ve indirme
E-tablo gönderimi, Location: /api/v1/jobs/JOB_ID, Retry-After: 5 ve bu gövdeyle 202 döndürür:
{
"job": {
"id": "JOB_ID",
"kind": "sheet_conversion",
"status": "queued",
"poll_after_seconds": 5
},
"request_id": "REQUEST_ID"
}poll_after_seconds değerine uyarak done veya failed olana kadar aynı hesabın belirteciyle İşleri sorgulayın. Tamamlanan job.result, kind: "sheet_conversion", counts ve 15 dakika geçerli imzalı download_url içerir. Yeni bir indirme imzası almak için tekrar sorgulayın. Başarısız işte error bulunur ve kısmi indirme sunulmaz.
Bir Google E-Tablosu için job.result ayrıca copy_url içerebilir: bağlantılarınızın yerine konduğu, Google E-Tablolar'daki birebir kopyaya salt görüntüleme bağlantısı; bağlantıya sahip olan herkes Dosya → Kopya oluştur ile kendi kopyasını saklayabilir. copy_notes, bu kopyayı okuyan kişinin bilmesi gerekenleri listeler; örneğin =IMAGE() ile oluşturulan resimler kendi kopyasında bir kez Erişime izin ver tıklaması gerektirir. download_url XLSX dosyasını döndürmeye devam eder. copy_counts kopya için aynı sayımları verir; XLSX oluşturulamazsa sonuçta copy_url kalır, download_url bulunmaz ve copy_notes nedenini açıklar. download_notes, XLSX dosyasının tablodan tutamadıklarını satır satır listeler; örneğin grafikler veya bir hücredeki ikinci bağlantı.
Anlık görüntüler ve sonuç dosyaları, iş tamamlandıktan veya başarısız olduktan sonra yedi gün boyunca saklanır. Temizlikten sonra iş, durumu ve sayaçlarıyla okunabilir kalır ancak job.result.download_url alanı döndürülmez. Paylaşılan anlık görüntüler, başka bir iş bunlara ihtiyaç duyduğu sürece korunur. Terk edilmiş ham yüklemeler, yükleme ayırmanın süresi dolduktan bir saat sonra silinir; hiç iş başlatmayan doğrulanmış bir yüklemenin anlık görüntüsü, ayırmanın süresi dolduktan yedi gün sonra silinir. Temizlik saatte bir çalışır.
| Sayaç | Anlamı |
|---|---|
links_found | Yinelenen hedefler dâhil bulunan bağlantı sayısı. |
converted | Hesabınıza atfedilen bağlantılarla değiştirilen bağlantı sayısı. |
left_by_host | Bilerek değiştirilmeden bırakılan bağlantıların ana makineye göre sayıları. |
unresolved | Dönüştürülemeyen ve değiştirilmeden kalan bağlantı sayısı. |
unresolved_examples | Çözümlenemeyen URL örnekleri. |
coverage_gap | Eksik dönüştürme yanıtları; üretilen dosyada her zaman 0. |
Kapsama links_found = converted + sum(left_by_host) + unresolved eşitliğini sağlar. Sosyal bağlantılar, Google Sheets bağlantıları, aynı çalışma kitabı içindeki gezinme ve mevcut NinjaBuy bağlantıları değişmeden kalır. Çıktı yazılmadan önce dönüştürülecek her aday için yanıt alınmalıdır; eksik yanıtlar işin başarısız olmasına neden olur.
Çalışma kitabında korunanlar
Çıktı, ayrıştırılmış ızgarada temsil edilen stilleri, birleştirmeleri, satır ve sütun boyutlarını ve resimleri korur. Zengin metin parçaları, hücre köprüsü olmayan hücrelerde korunur; bağlantılı hücreler tek bir metin etiketi ve köprü kullanır. Çalışma kitabı yeniden serileştirilir: grafikler, makrolar ve bu ızgara dışındaki diğer özellikler korunmaz.
XLSX, hücre başına bir köprü destekler. Dönüştürme, yanına ikinci bağlantı eklemek yerine bağlantıları yerinde değiştirir. Resim dışı iki veya daha fazla farklı bağlantı hedefi içeren hücre, ilkini köprü olarak tutar ve diğerlerini hücrenin notunda listeler; böylece hiçbir hedef kaybolmaz.
Sınırlar
| Kaynak | Üst sınır |
|---|---|
| Yüklenen XLSX veya CSV dosyası | 20 MiB; bildirilen bayt sayısıyla eşleşmelidir |
| Açılmış XLSX veya birleştirilmiş Google kaynak HTML’si | 64 MiB |
| Dönüştürme genelindeki hücreler | 500.000 |
| Tekrarlar dâhil bulunan bağlantı sayısı | 100.000 |
| Her resim | 10 MiB |
| Korunan benzersiz resimlerin toplamı | 32 MiB |
| Serileştirilmiş XLSX çıktısı | 64 MiB |
| Yükleme ayırma / indirme imzası | Her biri 15 dakika |
Ayrıştırıcı veya yazıcı sınırının aşılması açıkça başarısızlıkla sonuçlanır. invalid-workbook, upload-expired ve upload-too-large için Hatalar sayfasına bakın.