Integrate full instagram oauth
This commit is contained in:
@@ -24,8 +24,7 @@ export class InstagramTokenManager extends BaseTokenManager {
|
||||
+ "&response_type=code";
|
||||
}
|
||||
|
||||
async generate(code) {
|
||||
|
||||
async generateShortLivedToken(code){
|
||||
let headers = {
|
||||
"Content-Type": "application/x-www-form-urlencoded"
|
||||
};
|
||||
@@ -40,11 +39,14 @@ export class InstagramTokenManager extends BaseTokenManager {
|
||||
|
||||
let encodedBody = new URLSearchParams(body);
|
||||
|
||||
let shortLiveAccessTokenData = await Requester.doPostRequest(
|
||||
return await Requester.doPostRequest(
|
||||
"https://api.instagram.com/oauth/access_token", headers, encodedBody);
|
||||
}
|
||||
|
||||
let userId = shortLiveAccessTokenData.user_id;
|
||||
let shortLiveAccessToken = shortLiveAccessTokenData.access_token;
|
||||
async generateLongLivedToken(shortLivedToken) {
|
||||
|
||||
let userId = shortLivedToken.user_id;
|
||||
let shortLiveAccessToken = shortLivedToken.access_token;
|
||||
|
||||
let longLiveAccessTokenData = await Requester.doGetRequest(
|
||||
"https://graph.instagram.com/access_token?grant_type=ig_exchange_token" +
|
||||
|
||||
@@ -29,7 +29,7 @@ export class Logger{
|
||||
|
||||
await mkdir(logsDir, { recursive: true });
|
||||
|
||||
await appendFile(fullPath, `${time} - ${message} -> ${JSON.stringify(error)} \n`);
|
||||
await appendFile(fullPath, `${time} - ${message} -> ${error.message} \n`);
|
||||
console.error(`An error occured. The incident has been logged in ${fullPath}`)
|
||||
} catch (err) {
|
||||
console.error("Error writing log:", err);
|
||||
|
||||
@@ -24,12 +24,18 @@ export class Requester {
|
||||
headers: headers,
|
||||
body: body
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(async response => {
|
||||
if (!response.ok) {
|
||||
throw new Error(`HTTP ${response.status} ${response.statusText} : ${await response.text()}`);
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.then(data => {
|
||||
return data;
|
||||
})
|
||||
.catch(error => {
|
||||
Logger.error(`Unable to fetch`, error);
|
||||
throw error;
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>The Jailor auth</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="result-text"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<script type="module">
|
||||
import {data} from "../core/appData.js";
|
||||
|
||||
try{
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const code = urlParams.get("code");
|
||||
|
||||
await data.instagramTokenManager.generate(code)
|
||||
|
||||
document.querySelector("#code").innerText = "Authentication successful. You can close this tab";
|
||||
} catch(err){
|
||||
document.querySelector("#code").innerText = "Authentication failed.";
|
||||
}
|
||||
|
||||
</script>
|
||||
Reference in New Issue
Block a user