Như đã đề cập trong câu trả lời khác, vấn đề là ở phần thân biểu mẫu được cho là gửi ở định dạng x-www-form-urlencoding . Nó đã làm việc tốt với tôi trong postman nhưng để thực hiện tương tự trong góc là hơi điển hình. Ở đây, phần thân yêu cầu bài đăng trước tiên phải được chuyển đổi theo định dạng HttpParams và sau đó chuyển sang tham số 'body' của yêu cầu bài viết dưới dạng chuỗi như thế này ..
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
}
*/
})
}
}