基本カレンダーに予定作成でSERVICE_UNAVAILABLEが出力される
基本カレンダーに予定作成したときにSERVICE_UNAVAILABLEが出力されてしまいます。
解決方法についてご教示いただけないでしょうか。
コードに不備がありましたら申し訳ございません。
■接続言語 python
■出力結果
{'code': 'SERVICE_UNAVAILABLE', 'description': 'Service failure'}
<Response [500]>
■以下コードになります。
client_id = 'eeee'
client_secret = 'dddd'
service_account_id = 'ccc@exmple'
privatekey = 'bbb'
AccountId = 'aaa@exmple'
scope = 'calendar'
BASE_AUTH_URL = 'https://auth.worksmobile.com/oauth2/v2.0'
def get_access_token(client_id, client_secret_txt, scope, jws):
url = '{}/token'.format(BASE_AUTH_URL)
headers = {
'Content-Type': 'application/x-www-form-urlencoded'
}
params = {
"assertion": jws,
"grant_type": urllib.parse.quote("urn:ietf:params:oauth:grant-type:jwt-bearer"),
"client_id": client_id,
"client_secret": client_secret_txt,
"scope": scope,
}
form_data = params
r = requests.post(url=url, data=form_data, headers=headers)
return r
def get_jwt(client_id, service_account_id, privatekey):
current_time = datetime.datetime.now().timestamp()
iss = client_id
sub = service_account_id
iat = current_time
exp = current_time + (60 * 60)
jws = jwt.encode(
{
"iss": iss,
"sub": sub,
"iat": iat,
"exp": exp
}, privatekey, algorithm="RS256")
return jws
def CalendareventS(jwt_txt,CalendarId,**EventParams):
apiurl = 'https://www.worksapis.com/v1.0/users/'
apiurl = apiurl + urllib.parse.quote(AccountId)
apiurl = apiurl + '/calendar/events'
header = {
'Authorization' : 'Bearer {}'.format(jwt_txt),
'Content-Type' : 'application/json; charset=UTF-8'
}
r = requests.post(apiurl, headers = header, json = EventParams)
return r
def main():
jwt_txt = get_jwt(client_id,service_account_id,privatekey)
get_Jwt_j = get_access_token(client_id,client_secret,scope,jwt_txt)
get_jwt_txt = get_Jwt_j.json()['access_token']
f = open('C:/CalendarFile.ics',encoding='utf_8')
eventdata = f.read()
eventdata = eventdata.replace('\\r\\n','\r\n')
eventdata = json.dumps(eventdata)
f.close()
event = CalendareventS(get_jwt_txt,'defaultCalendarId',ical=eventdata)
print(event)
if __name__ == '__main__':
main()
投稿に新しいコメントが追加されましたら通知を送信します。
コメント1
업데이트 된 답글입니다.
rs_a95fdd 投稿者
api1.0と異なり、icsファイルをjsonにするのではなく、
パラメータに合わせてjson作成⇒連携で連携出来ました。
2022.08.30
まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。