परीक्षण उपयोगकर्ता {"error_type": "OAuthException", "कोड": 400, "error_message": "अमान्य प्लेटफ़ॉर्म ऐप"} को प्रमाणित करें


17

मैं इंस्टाग्राम बेसिक डिस्प्ले एपीआई के माध्यम से एक्सेस टोकन को पुनर्प्राप्त करने की कोशिश कर रहा हूं, लेकिन परीक्षण उपयोगकर्ता को प्रमाणित करने की कोशिश करते समय मुझे यह त्रुटि मिलती है:

{
    "error_type": "OAuthException",
    "code": 400,
    "error_message": "Invalid platform app"
}

मुझे ऐप प्राधिकरण स्क्रीन देखने की उम्मीद है


क्या आपने कभी इसके लिए समाधान निकाला? मुझे भी यही तकलीफ़ है।
MontyTheMack

जवाबों:


26

फेलिस!

इंस्टाग्राम ऐप सेट करते समय, आपको प्लेटफ़ॉर्म विशिष्ट ऐप आईडी का उपयोग करना चाहिए, न कि फेसबुक पर सामान्य एक सेटअप का।

अपने फेसबुक ऐप में डैशबोर्ड जाना Products > Instagram > Basic Displayचाहिए और इंस्टाग्राम ऐप आईडी को देखना चाहिए ।

अपने प्राधिकरण URL में इसका उपयोग करें और यह काम करना चाहिए।


क्या आपने कभी इसके लिए समाधान निकाला? मुझे भी यही तकलीफ़ है।
मोंटी.मैक

4
मैं इंस्टाग्राम ऐप आईडी का उपयोग कर रहा हूं और यह अभी भी यह त्रुटि दे रहा है।
MontyTheMack

1
मुझे भी। मैंने देखा कि आप [ api.instagram.com/oauth/access_token/] पर जो भी पैरामीटर डालते हैं , वह एक एरर फेंक देगा! शायद एक बुरा समापन बिंदु? किसी भी स्थिति में, मैंने [ Developers.facebook.com/docs/instagram-basic-display-api/…] पर बताए गए सभी चरणों का पालन किया है और सभी चरण 5 तक पूरी तरह से ठीक काम किया है : एक टोकन के लिए कोड का आदान-प्रदान करें जहां मैं तब उपयोग करता हूं पोस्टमैन को कॉल करने के लिए [ api.instagram.com/oauth/access_token/] मापदंडों के साथ client_id, client_secret, allow_type, redirect_uri और code (सफल प्राधिकरण के बाद पुनर्प्राप्त) । लेकिन विफल रहता है
डिंगडोंग

6
मुझे वही समस्या थी जो मैंने शरीर के माध्यम से मापदंडों को पारित करने और x-www-form-urlencoded सेट करने के साथ पोस्टमैन के साथ परीक्षण किया, यह एक चाम की तरह काम करता था
माइकल डे मेंटेन

6

शरीर के माध्यम से मापदंडों को पारित करना और x-www-form-urlencoded में ठीक काम करता है जैसा कि आप नीचे दिए गए चित्र में देख सकते हैं यहां छवि विवरण दर्ज करें


1
सच है, यह पूरी तरह से ठीक काम किया
डिंगडोंग

यह मेरे लिए काम नहीं कर रहा है
निकुंज

1
धन्यवाद आपने वास्तव में मेरी मदद की :)
बार्ट_97

2

मेरे पास एक समान मुद्दा था और आवेदन / x-www-form-urlencoded के अनुरोध के सामग्री प्रकार को निर्धारित करके इसे हल करने में सक्षम था। नीचे एसी # उदाहरण है जो अनुरोध को निष्पादित करने का तरीका दिखा रहा है:

public async Task<UserTokenResponseModel> GetUserToken(string code)
    {
        var url =
            $"https://api.instagram.com/oauth/access_token";

        var request = new HttpRequestMessage(HttpMethod.Post, url);

        var client = _httpClientFactory.CreateClient();

        var requestContent = new List<KeyValuePair<string, string>>();
        requestContent.Add(new KeyValuePair<string, string>("client_id", ClientId));
        requestContent.Add(new KeyValuePair<string, string>("client_secret", Secret));
        requestContent.Add(new KeyValuePair<string, string>("grant_type", "authorization_code"));
        requestContent.Add(new KeyValuePair<string, string>("code", code));
        requestContent.Add(new KeyValuePair<string, string>("redirect_uri", "https://localhost:44315/instagram/authorizecallback"));

        request.Content = new FormUrlEncodedContent(requestContent);

        var response = await client.SendAsync(request);
        var content = await response.Content.ReadAsStringAsync();

        if (!response.IsSuccessStatusCode)
        {
            throw new Exception(content);
        }

        return JsonConvert.DeserializeObject<UserTokenResponseModel>(content);
    }

1

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

}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.