javascript - 如何使用 facebook SDK 在 laravel 中获取 fb 帐户图片库
问题描述
我想列出 facebook 的所有照片。所以,为此我在我的 laravel 应用程序中使用 facebook sdk。当我成功登录但当我点击获取图像的方法时,我遇到了下面给出的错误
她是我用于登录的 javascript 代码
$.getScript('//connect.facebook.net/en_US/sdk.js', function () {
// initialize facebook sdk
FB.init({
appId: '139779161320778', // replace this with your id
status: true,
cookie: true,
version: 'v2.8'
});
// attach login click event handler
$("#btn-login").click(function () {
FB.login(processLoginClick, {scope: 'public_profile,email', return_scopes: true});
});
});
function processLoginClick(response)
{
var uid = response.authResponse.userID;
var access_token = response.authResponse.accessToken;
var permissions = response.authResponse.grantedScopes;
var data = {
uid: uid,
access_token: access_token,
permissions: permissions,
_token : {{csrf_token()}}
};
postData('{{route("fb.login")}}', data, "post");
}
function postData(url, data, method)
{
method = method || "post";
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", url);
for (var key in data) {
if (data.hasOwnProperty(key)) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", data[key]);
form.appendChild(hiddenField);
}
}
document.body.appendChild(form);
form.submit();
}
我的控制器代码用于登录
public function store(Facebook $fb) //method injection
{
// retrieve form input parameters
$uid = Request::input('uid');
$access_token = Request::input('access_token');
$oAuth2Client = $fb->getOAuth2Client();
$access_token = $oAuth2Client->getLongLivedAccessToken($access_token)->getValue();
$fb->setDefaultAccessToken($access_token);
session()->put('access_token',$access_token);
$fields = "id,cover,name,first_name,last_name,age_range,link,gender,locale,picture,timezone,updated_time,verified";
$fb_user = $fb->get('/me?fields=' . $fields)->getGraphUser();
}
当我单击以下获取图像的方法时,我会收到该错误。这是javascript和控制器代码的方法
function getImages()
{
console.log('getImages');
$.ajax({
method : 'POST',
url : '{{route('get.fb.images')}}',
data : {
_token : '{{csrf_token()}}',
},
succcess : function (data)
{
console.log(data);
}
})
}
public function getfbImages(Facebook $fb)
{
$postData = "";
$userPosts = $fb->get("/{user-id}/photos/uploaded?fields=picture,created_time,name", session()->get('access_token'));
$postBody = $userPosts->getDecodedBody();
$postData = $postBody["data"];
return $postData;
}
这是我的 .env
FACEBOOK_APP_ID=139779161320778
FACEBOOK_APP_SECRET=************
FACEBOOK_DEFAULT_GRAPH_VERSION=v2.8
我的 config.pphp
return [
'config' => [
'app_id' => env('FACEBOOK_APP_ID', null),
'app_secret' => env('FACEBOOK_APP_SECRET', null),
'default_graph_version' => env('FACEBOOK_DEFAULT_GRAPH_VERSION', 'v2.8'),
],
];
和我的 Appserviceprovider.php
$this->app->singleton(Facebook::class, function ($app) {
return new Facebook(config('facebook.config'));
});
请帮助某人摆脱这些问题。我会很有帮助的
解决方案
推荐阅读
- angular - 尝试在 Angular 中使用图像数组,但我的 *ngFor 出现问题
- python - fast.ai:如何在验证期间获得每批损失
- python - 创建二维字符串数组
- javascript - aws - 如何获取 lambda - 节点 - 使用查询参数作为事件属性
- excel - Excel 2019 条件格式规则应用不一致
- android - 当 Android Q 中的 minifyEnabled = true 时,带有数据绑定的 LiveData 不起作用
- python-2.7 - kutils(在哪里可以找到这个特定的包)
- rest - 需要在 Spring HandlerInterceptor 的 afterCompletion 方法中从 HttpServletResponse 中获取实际的响应内容
- python - 使用 -1 语法时,Numpy `resize` 会给出意外的数组大小
- python - 如何修复 Pandas:IndexingError: Unalignable boolean Series 作为索引器提供