Instagramからトークンを受け取ろうとしていて、何か問題があります。このコードを使用しますが、次のエラーが表示されます。ajaxを使ってinstagram log inトークンを受け取る方法
SEC7127:CORSリクエストでリダイレクトがブロックされました。
SCRIPT7002:XMLHttpRequest:ネットワークエラー0x2ef1、エラー00002ef1のため、操作を完了できませんでした。間違ったことの
Instagramからトークンを受け取ろうとしていて、何か問題があります。このコードを使用しますが、次のエラーが表示されます。ajaxを使ってinstagram log inトークンを受け取る方法
SEC7127:CORSリクエストでリダイレクトがブロックされました。
SCRIPT7002:XMLHttpRequest:ネットワークエラー0x2ef1、エラー00002ef1のため、操作を完了できませんでした。間違ったことの
バンチ
$(document).ready(function() {
var clientId = 'xxx';
var clientSecret = 'xxx';
var redirectUri = 'http://localhost/instagramFeed/';
function callback(code) {
$.ajax({
type: 'POST',
client_id: clientId,
client_secret: clientSecret,
grant_type: authorization_code,
redirect_uri: redirectUri,
code: code,
success: function(code) {
console.log('Callbeck success!');
},
error: function(msg) {
console.log('Error in callback');
console.log(msg);
}
});
}
var requestToken = function() {
var url = 'https://instagram.com/oauth/authorize/?client_id=' + clientId + '&redirect_uri=' + redirectUri + '&response_type=code';
$.ajax({
type: 'GET',
url: url,
success: function(code) {
console.log('Success' + code);
callback(code);
},
error: function(msg) {
console.log('Error');
console.log(msg);
}
});
};
requestToken();
});
code
は、リダイレクトURL内のURLのparamとして到着します、あなたは、Ajaxを呼び出し、応答
code
をゲットすることはできません。 そして、あなたはサーバーをoauthに明示的にjavascriptでログインさせることはできません。サーバー側のコードで投稿をしなければなりません。
もしあなたが単にjavascriptを使用したいのであれば、Instagramによってサポートされているoauth2のクライアント暗黙の許可メソッドを使うことができます。これは、これがappの設定です。
=code
の代わりにresponse_type=token
という認証URLを開いてください。
window.location = 'https://instagram.com/oauth/authorize/?client_id=' + clientId + '&redirect_uri=' + redirectUri + '&response_type=token'
ちょうどこのURLを開いて、ログイン後、access_token
はそれをつかむためにredirect url
のハッシュフラグメントになり、単にリダイレクトURLのページにこのコードを持っている
var access_token = "";
if (window.location.hash){
access_token = window.location.hash.split("access_token=")[1];
window.location.hash = "";
}
{"code":403、 "error_type": "OAuthForbiddenException"、 "error_message": "暗黙的な認証が無効になっています"} –
これを有効にした後、 –
"callback"関数のajax呼び出しが間違っています。 URLが指定されておらず、「client_id」、「client_secret」、「grant_type」、「redirect_uri」、「code」のどれもjQuery ajaxメソッドの有効なパラメータです。http://api.jquery .com/jquery.ajax /。それらは要求と共に送られたデータの一部であるべきですか? – ADyson
両方のajax呼び出しでも、 "error"関数の署名が間違っています。関数(jqXHR、textStatus、errorThrown)でなければなりません。再びhttp://api.jquery.com/jquery.ajax/を参照してください。それが問題をあなたに報告するのを妨げる可能性もあります。 "function(jQXHR、textStatus、errorThrown){ \t \t \t alert("サーバーに接続しようとしているときにエラーが発生しました: "+ jQXHR.status +" "+ textStatus +" "+ errorThrown ); \t \t} 'より良いレポートを得るために – ADyson
私は全体のコールバック()とまだ同じエラーをコメントしました。編集されたエラーハンドラで、エラーは次のようになります。サーバーに接続しようとしているときにエラーが発生しました:0エラー。しかし、私は質問に投稿したまだ2つのエラー –