@line/bot-sdk
Version:
Node.js SDK for LINE Messaging API
118 lines • 7.12 kB
JavaScript
/**
* LINE Messaging API
* This document describes LINE Messaging API.
*
* The version of the OpenAPI document: 0.0.1
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import HTTPFetchClient, { mergeHeaders, } from "../../http-fetch.js";
/**
* @see {@link LineBotClient} for a unified interface that wraps this client.
*/
export class LineModuleAttachClient {
httpClient;
/**
* Initializes a new `LineModuleAttachClient`.
*
* @param config Configuration for this API client.
* @param config.baseURL The base URL for requests. Defaults to `https://manager.line.biz`.
* @param config.channelAccessToken The channel access token used for authorization.
* @param config.defaultHeaders Extra headers merged into every request.
*
* @example
* const client = new LineModuleAttachClient({
* channelAccessToken: process.env.LINE_CHANNEL_ACCESS_TOKEN!,
* });
*/
constructor(config) {
const baseURL = config.baseURL || "https://manager.line.biz";
const defaultHeaders = mergeHeaders(config.defaultHeaders, {
Authorization: "Bearer " + config.channelAccessToken,
});
this.httpClient = new HTTPFetchClient({
defaultHeaders: defaultHeaders,
baseURL: baseURL,
});
}
/**
* Attach by operation of the module channel provider
* Calls `POST https://manager.line.biz/module/auth/v1/token`.
* To inspect the HTTP status code or response headers, use {@link attachModuleWithHttpInfo}.
* @param grantType authorization_code
* @param code Authorization code received from the LINE Platform.
* @param redirectUri Specify the redirect_uri specified in the URL for authentication and authorization.
* @param codeVerifier Specify when using PKCE (Proof Key for Code Exchange) defined in the OAuth 2.0 extension specification as a countermeasure against authorization code interception attacks.
* @param clientId Instead of using Authorization header, you can use this parameter to specify the channel ID of the module channel. You can find the channel ID of the module channel in the LINE Developers Console.
* @param clientSecret Instead of using Authorization header, you can use this parameter to specify the channel secret of the module channel. You can find the channel secret of the module channel in the LINE Developers Console.
* @param region If you specified a value for region in the URL for authentication and authorization, specify the same value.
* @param basicSearchId If you specified a value for basic_search_id in the URL for authentication and authorization, specify the same value.
* @param scope If you specified a value for scope in the URL for authentication and authorization, specify the same value.
* @param brandType If you specified a value for brand_type in the URL for authentication and authorization, specify the same value.
* @returns A promise resolving to the response body.
* @see <a href="https://developers.line.biz/en/reference/partner-docs/#link-attach-by-operation-module-channel-provider">LINE Developers documentation</a>
*/
async attachModule(grantType, code, redirectUri, codeVerifier, clientId, clientSecret, region, basicSearchId, scope, brandType) {
return (await this.attachModuleWithHttpInfo(grantType, code, redirectUri, codeVerifier, clientId, clientSecret, region, basicSearchId, scope, brandType)).body;
}
/**
* Attach by operation of the module channel provider
* Calls `POST https://manager.line.biz/module/auth/v1/token`.
* This method returns the response body together with the underlying `httpResponse`.
* @param grantType authorization_code
* @param code Authorization code received from the LINE Platform.
* @param redirectUri Specify the redirect_uri specified in the URL for authentication and authorization.
* @param codeVerifier Specify when using PKCE (Proof Key for Code Exchange) defined in the OAuth 2.0 extension specification as a countermeasure against authorization code interception attacks.
* @param clientId Instead of using Authorization header, you can use this parameter to specify the channel ID of the module channel. You can find the channel ID of the module channel in the LINE Developers Console.
* @param clientSecret Instead of using Authorization header, you can use this parameter to specify the channel secret of the module channel. You can find the channel secret of the module channel in the LINE Developers Console.
* @param region If you specified a value for region in the URL for authentication and authorization, specify the same value.
* @param basicSearchId If you specified a value for basic_search_id in the URL for authentication and authorization, specify the same value.
* @param scope If you specified a value for scope in the URL for authentication and authorization, specify the same value.
* @param brandType If you specified a value for brand_type in the URL for authentication and authorization, specify the same value.
* @returns A promise resolving to the response body together with the underlying `httpResponse`.
* @see <a href="https://developers.line.biz/en/reference/partner-docs/#link-attach-by-operation-module-channel-provider">LINE Developers documentation</a>
*/
async attachModuleWithHttpInfo(grantType, code, redirectUri, codeVerifier, clientId, clientSecret, region, basicSearchId, scope, brandType) {
const formParams = {
grant_type: grantType,
code: code,
redirect_uri: redirectUri,
code_verifier: codeVerifier,
client_id: clientId,
client_secret: clientSecret,
region: region,
basic_search_id: basicSearchId,
scope: scope,
brand_type: brandType,
};
if (formParams["code_verifier"] === undefined) {
delete formParams["code_verifier"];
}
if (formParams["client_id"] === undefined) {
delete formParams["client_id"];
}
if (formParams["client_secret"] === undefined) {
delete formParams["client_secret"];
}
if (formParams["region"] === undefined) {
delete formParams["region"];
}
if (formParams["basic_search_id"] === undefined) {
delete formParams["basic_search_id"];
}
if (formParams["scope"] === undefined) {
delete formParams["scope"];
}
if (formParams["brand_type"] === undefined) {
delete formParams["brand_type"];
}
const res = await this.httpClient.postForm("/module/auth/v1/token", formParams);
const text = await res.text();
const parsedBody = text ? JSON.parse(text) : null;
return { httpResponse: res, body: parsedBody };
}
}
//# sourceMappingURL=lineModuleAttachClient.js.map