जैसा कि अन्य उत्तर में भी उल्लेख किया गया है, समस्या फॉर्म बॉडी के साथ थी जिसे x-www-form-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
}
*/
})
}
}