ตามที่ระบุไว้ในคำตอบอื่น ๆ เช่นกันปัญหากับร่างกายรูปแบบที่ควรจะส่งในx-www- ฟอร์ม urlencodedรูปแบบ มันใช้งานได้ดีสำหรับบุรุษไปรษณีย์ แต่การนำไปใช้ในเชิงมุมเป็นเรื่องปกติเล็กน้อย ที่นี่เนื้อหาคำขอโพสต์ต้องแปลงเป็นรูปแบบ HttpParams ก่อนจากนั้นส่งต่อไปยังพารามิเตอร์ 'เนื้อหา' ของคำขอโพสต์เป็นสตริงเช่นนี้ ..
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class appService {
constructor(private http: HttpClient) { }
public getInstaAccessToken(formData) {
let full_url = "https://api.instagram.com/oauth/access_token";
let body = new HttpParams()
.set("client_id" , "YOUR_CLIENT_ID")
.set("client_secret","YOUR_CLIENT_SECRET")
.set("code","code received from redirect url")
.set("grant_type","authorization_code")
.set("redirect_uri","your redirect uri")
const requestOptions = {
headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')
}
return this.http.post(full_url, body.toString(), requestOptions).subscribe(data=>{
console.log(data);
/*
{
"access_token": "IGQVJ...",
"user_id": 17841405793187218
}
*/
})
}
}