Instagram OEmbed - OAuthException 200 提供有效的应用程序 ID
Instagram OEmbed - OAuthException 200 Provide valid app ID
我不断收到错误消息:
{message: '(#200) Provide valid app ID', type: 'OAuthException', code: 200,...
我可以使用 curl 并通过输入 URL 获得 HTTP Get 响应,但是当尝试在 Javascript SDK 中使用完全相同的 url 时,我收到之前的错误提示。
以下是我的JS脚本。
var pageAccessToken = 'APP_ID|CLIENT_ID';
$(document).ready(function() {
$.ajaxSetup({ cache: true });
$.getScript('https://connect.facebook.net/en_US/sdk.js', function(){
FB.init({
appId : 'APP_ID',
xfbml : true,
version : 'v13.0'
});
FB.getLoginStatus(function(response){
FB.api(
'/instagram_oembed',
'GET',
{"url":"https://graph.facebook.com/v13.0/instagram_oembed?url=INSTAGRAMURL&access_token=" + pageAccessToken},
function(response) {
console.log(response);
InstagramPage.innerHTML = response.html;
}
);
console.log(response);
});
});
});
有什么想法吗?
我的应用程序已上线(我可以从 HTTP Get 获取正确的信息)
编辑:
正如 CBroe 所说,我将我的代码更改为以下内容,现在可以使用了。
FB.getLoginStatus(function(response){
FB.api(
'/instagram_oembed',
'GET',
{
"url":"INSTAGRAMURL",
access_token: pageAccessToken
},
function(response) {
console.log(response);
InstagramPage.innerHTML = response.html;
}
);
console.log(response);
});
});
因此,在 {} 中包含这两个参数是可行的。我最初尝试使用 2 {},但没有用。
然而,CBroe,在facebook docs中可以看到:https://developers.facebook.com/docs/facebook-login/guides/access-tokens
我可以在 javascript 中使用 Client_ID。
添加 - 在我将其写入 PHP 之后(使用 PHP SDK for facebook),解决客户端 ID 在 JS 中可读的问题:
<?php
require_once __DIR__ . '/assets/src/Facebook/autoload.php'; // change path as needed
$fb = new \Facebook\Facebook([
'app_id' => 'APP-ID',
'app_secret' => 'APP-Secret',
'default_graph_version' => 'v13.0'
//'default_access_token' => '{access-token}', // optional
]);
/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->get(
'/instagram_oembed?url=INSTAGRAMURL',
'APP-ID|APP-ID_or_Client-ID'
);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$Node = $response->getDecodedBody();
echo <<< EOF
<div class=""InstagramResults">
EOF;
print_r($Node["html"]);
echo <<< EOF
</div>
EOF;
?>
´´´
您正在尝试将 instagram_oembed 端点 URL 发送到 instagram_oembed 端点。 url
参数只能是 INSTAGRAMURL
.
如果您必须传递不同于 SDK 内部使用的访问令牌,则需要将其作为附加参数传递给端点。
请注意,您永远不应在公开可用的 client-side 代码中公开您的 client_id(实际上是应用程序机密)。每个人都可以从那里窃取它,并且会为您的应用程序提供有效的应用程序访问令牌。
我不断收到错误消息:
{message: '(#200) Provide valid app ID', type: 'OAuthException', code: 200,...
我可以使用 curl 并通过输入 URL 获得 HTTP Get 响应,但是当尝试在 Javascript SDK 中使用完全相同的 url 时,我收到之前的错误提示。
以下是我的JS脚本。
var pageAccessToken = 'APP_ID|CLIENT_ID';
$(document).ready(function() {
$.ajaxSetup({ cache: true });
$.getScript('https://connect.facebook.net/en_US/sdk.js', function(){
FB.init({
appId : 'APP_ID',
xfbml : true,
version : 'v13.0'
});
FB.getLoginStatus(function(response){
FB.api(
'/instagram_oembed',
'GET',
{"url":"https://graph.facebook.com/v13.0/instagram_oembed?url=INSTAGRAMURL&access_token=" + pageAccessToken},
function(response) {
console.log(response);
InstagramPage.innerHTML = response.html;
}
);
console.log(response);
});
});
});
有什么想法吗?
我的应用程序已上线(我可以从 HTTP Get 获取正确的信息)
编辑:
正如 CBroe 所说,我将我的代码更改为以下内容,现在可以使用了。
FB.getLoginStatus(function(response){
FB.api(
'/instagram_oembed',
'GET',
{
"url":"INSTAGRAMURL",
access_token: pageAccessToken
},
function(response) {
console.log(response);
InstagramPage.innerHTML = response.html;
}
);
console.log(response);
});
});
因此,在 {} 中包含这两个参数是可行的。我最初尝试使用 2 {},但没有用。
然而,CBroe,在facebook docs中可以看到:https://developers.facebook.com/docs/facebook-login/guides/access-tokens
我可以在 javascript 中使用 Client_ID。
添加 - 在我将其写入 PHP 之后(使用 PHP SDK for facebook),解决客户端 ID 在 JS 中可读的问题:
<?php
require_once __DIR__ . '/assets/src/Facebook/autoload.php'; // change path as needed
$fb = new \Facebook\Facebook([
'app_id' => 'APP-ID',
'app_secret' => 'APP-Secret',
'default_graph_version' => 'v13.0'
//'default_access_token' => '{access-token}', // optional
]);
/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->get(
'/instagram_oembed?url=INSTAGRAMURL',
'APP-ID|APP-ID_or_Client-ID'
);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$Node = $response->getDecodedBody();
echo <<< EOF
<div class=""InstagramResults">
EOF;
print_r($Node["html"]);
echo <<< EOF
</div>
EOF;
?>
´´´
您正在尝试将 instagram_oembed 端点 URL 发送到 instagram_oembed 端点。 url
参数只能是 INSTAGRAMURL
.
如果您必须传递不同于 SDK 内部使用的访问令牌,则需要将其作为附加参数传递给端点。
请注意,您永远不应在公开可用的 client-side 代码中公开您的 client_id(实际上是应用程序机密)。每个人都可以从那里窃取它,并且会为您的应用程序提供有效的应用程序访问令牌。