Googleフォームとkintoneを連携してみよう!を参考にし、社内開発環境では動作しましたが、社内本番環境では下記の用に、認証エラーが出ました。
[18-10-04 13:54:02:822 JST] Form submitted
[18-10-04 13:54:03:600 JST] Response: 401
[18-10-04 13:54:03:601 JST] <!DOCTYPE html>
<html>
<head>
<meta charset=“utf-8”>
<title>Unauthorized</title>
<meta name=“viewport” content=“width=device-width,initial-scale=1”>
<link rel=“stylesheet” href=“/forest_error/css/style.css”>
</head>
<body>
<div class=“pagewrap”>
<div class=“column”> <img src=“/forest_error/image/cloud.png” width=“178” height=“107” alt=“”>
<h2>アクセスするには認証が必要です。</h2>
<p>Code: 401 Unauthorized</p>
</div>
</div>
<div class=“footer”>
<p>Copyright(C) Cybozu</p>
</div>
</body>
</html>
そのため、私はBASIC認証の影響かと思い、下記の用にコードを変更したのですが、指定された属性の値が無効です: Header:Authorization:Basic(行 65、ファイル「kintone_manager」、プロジェクト「kintoneManager」)とエラーが出ました。
私のREST APIの理解不足かとは思いますが、解決策があれば教えて頂けないでしょうか。
//KintoneManager
Link: https://github.com/Arahabica/KintoneManager/blob/master/KintoneManager.gs
// KintoneManager変更部分
KintoneManager.prototype._authorizationHeader = function(app) {
if (this.authorization) {
// Password authentication
return { “X-Cybozu-Authorization”: this.authorization };
} else if (app.token) {
// API token authentication
return { “X-Cybozu-API-Token”: app.token, “Authorization:Basic”: app.basic };
} else {
throw new Error(“Authentication Failed”);
}
};
// form側
// Global resource
var subdomain = ‘サブドメイン’;
var app = 2231;
var token = ‘APIトークン’;
//var basic = ‘base64エンコードしたname: password’;
var apps = {
YOUR_APPLICATION1: {
appid: app,
token: token,
//basic: basic
}
};
// Get email field of kintone
function getFromKintone(entry_data){
‘use strict’;
Logger.log(‘Form submitted’);
//var email = entry_data[0];
var record_number = 1;
var kintone_manager = new KintoneManager.KintoneManager(subdomain, apps);
var query = ‘record_no = "’+ record_number +‘"’
var response = kintone_manager.search(“YOUR_APPLICATION1”, query);
// Status code and Records data
var code = response.getResponseCode();
Logger.log('Response: ’ + code);
Logger.log(response);
var content = JSON.parse(response.getContentText());
var records = content.records;
}