У меня есть скрипт Служб Google, который обращается к API Stripe и извлекает данные из счета-фактуры Stripe , ссылка и добавляет эти данные в Google Sheet.
Stripe упомянул, что я могу расширить объект, чтобы получить больше информации расширение ссылки на объект .Но я довольно новичок в использовании API, поэтому я не уверен, как это сделать.
Я думаю, что причина, по которой я застрял, заключается в том, что я извлекаю данные счета из URL (т. Е. https://api.stripe.com/v1/invoices/xxxxxxxxxxxxxxxxxxxxxxxxxx).. Я не уверен, как изменить URL, чтобы расширить объект (илигде я должен сделать это в приведенном ниже коде.)
Например, я хочу расширить объект "Сбор", чтобы включить в него более подробную информацию о платеже. Данные, которые я хотел бы получить от объекта сбора, будуттип карты (например, Visa), срок действия, последние четыре цифры. Я бы, вероятно, сделал бы то же самое с объектом Customer, чтобы получить доступ к информации о клиенте относительно счета.
Вот скрипт Google Apps, который я используюпрямо сейчас:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Stripe')
.addItem('Retrieve Invoice Data','getInvoiceObj')
.addToUi();
}
function getInvoiceObj()
{
var apiKey, content, options, response, secret, url;
//API Key
secret = "rk_live_xxxxxxxxxxxxxxxxxxxxxxxxxx";
apiKey = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
//Stripe API invoice URL
url = "https://api.stripe.com/v1/invoices/xxxxxxxxxxxxxxxxxxxxxxxxxx";
options = {
"method" : "GET",
"headers": {
"Authorization": "Bearer " + secret
},
"muteHttpExceptions":true
};
response = UrlFetchApp.fetch(url, options);
//Push data to Sheet from invoice. **Writes over existing Sheet data**
content = JSON.parse(response.getContentText());
var sheet = SpreadsheetApp.getActiveSheet();
//Retrieves currency type and adds to Sheet
sheet.getRange(5,2).setValue([content.currency.toUpperCase()]);
//Invoice amount due
sheet.getRange(3,2).setValue([content.amount_due]);
//Invoice date
sheet.getRange(1,2).setValue([content.date]);
//Invoice period begin
sheet.getRange(6,2).setValue([content.lines.data[0].period.start]);
//Invoice period end
sheet.getRange(7,2).setValue([content.lines.data[0].period.end]);
//Number of licenses
sheet.getRange(10,2).setValue([content.lines.data[0].quantity]);
//Invoice number
sheet.getRange(13,2).setValue([content.number]);