Skip to content

Instantly share code, notes, and snippets.

@ha-kun
Created July 30, 2018 09:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ha-kun/3c04eabefc5ba25b97f22404b48f4468 to your computer and use it in GitHub Desktop.
Save ha-kun/3c04eabefc5ba25b97f22404b48f4468 to your computer and use it in GitHub Desktop.
筋トレ記録用gas
//フォームが送信されたら実行
function onFormSubmit(e) {
postToTwitter();
}
//Twitterに送信
function postToTwitter(){
tweet();
}
var API_KEY = PropertiesService.getScriptProperties().getProperty('API_KEY');
var API_SECRET = PropertiesService.getScriptProperties().getProperty('API_SECRET');
/* サービスの設定 */
function getService() {
return OAuth1.createService('Twitter')
.setAccessTokenUrl('https://api.twitter.com/oauth/access_token')
.setRequestTokenUrl('https://api.twitter.com/oauth/request_token')
.setAuthorizationUrl('https://api.twitter.com/oauth/authorize')
.setConsumerKey(API_KEY)
.setConsumerSecret(API_SECRET)
.setCallbackFunction('authCallback')
.setPropertyStore(PropertiesService.getUserProperties());
}
/* コールバック関数 */
function authCallback(request) {
var service = getService();
var authorized = service.handleCallback(request);
if (authorized) return HtmlService.createHtmlOutput('認証成功');
}
/* 認証リセット */
function reset() {
getService().reset();
}
/* 認証用URL */
function getOAuthURL() {
Logger.log(getService().authorize());
}
/* リクエスト */
function request1(text) {
var service = getService();
if (service.hasAccess()) {
var url = 'https://api.twitter.com/1.1/statuses/update.json';
var payload = {
status: text
};
var options = {
method: 'post',
payload: payload,
escaping: false
};
var response = service.fetch(url, options);
var result = JSON.parse(response.getContentText());
Logger.log(JSON.stringify(result, null, 2));
return result;
}
}
function getEditedRowData(){
//1. 現在のスプレッドシートを取得
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
//2. 現在のシートを取得
var sheet = spreadsheet.getActiveSheet();
//シートに記載されている最終行を取得
var ALastRow = sheet.getLastRow();
//シートに記載されている最終行のテキストを取得
var editedRowData = sheet.getSheetValues(ALastRow, 1, 1, sheet.getLastColumn());
//ログに出力
Logger.log(editedRowData);
// 部位
Logger.log(editedRowData[0][2]);
// 回数
Logger.log(editedRowData[0][3]);
var trainingMenu;
for (var i = 4; i < 16; i++) {
if (editedRowData[0][i] != '') {
// メニュー
Logger.log(editedRowData[0][i]);
trainingMenu = editedRowData[0][i];
}
}
return trainingMenu + 'を' + editedRowData[0][3] + '回して' + editedRowData[0][2] + 'を筋トレした!!'
}
function tweet(){
request1(getEditedRowData());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment