我在 laravel 5.1 中使用 facebook graph api。我已经安装了它 usnig composer 命令
composer require facebook/php-sdk-v4
Run Code Online (Sandbox Code Playgroud)
facebook graph api 已经安装,但是当我在 laravel 中创建 facebook api 对象时,它给了我这个错误
Class 'App\Http\Controllers\Userapp\Facebook\Facebook' not found
Run Code Online (Sandbox Code Playgroud)
它在这条线上
$fb = new Facebook\Facebook([
Run Code Online (Sandbox Code Playgroud)
这是我的控制器文件
<?php namespace App\Http\Controllers\Userapp;
require_once( base_path('vendor/facebook/php-sdk-v4/src/Facebook/autoload.php') );
// Facebook Requires
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\Entities\AccessToken;
use Facebook\HttpClients\FacebookHttpable;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\HttpClients\FacebookCurl;
Run Code Online (Sandbox Code Playgroud)
和控制器的功能
public function index()
{
// init app with app id and secret
$fb = …
Run Code Online (Sandbox Code Playgroud) 嗨,当用户尝试使用 google Oauth 2.0 登录时,我正在设置离线访问,然后我正在获取刷新令牌并将其存储到我的数据库中,以便稍后我可以使用它而无需要求用户再次登录,我已经找到了该用户可以从他的 google 帐户中撤销我们对他的 google 应用程序的应用程序访问权限,之后我们的刷新访问令牌将不起作用。
所以他们是一种方法,我们可以在使用它之前检查我们的刷新令牌是否有效我试图从谷歌 API 文档中找到但找不到任何帮助我只能发现我们可以检查简单访问令牌的过期时间仅 1 小时有效。
if($client->isAccessTokenExpired())
Run Code Online (Sandbox Code Playgroud)
但我想检查我的刷新令牌是否是我们可以检查它的一种方式,或者 google outh 2.0 是否有一些网络钩子可以在用户撤销我们的应用程序访问时调用我们的 url。
这是我的登录代码
$google_redirect_url = $url;
$client = new \Google_Client();
$client->setAuthConfig('/secret.json');
$client->setRedirectUri($google_redirect_url);
$client->setAccessType('offline'); // offline access
$client->setIncludeGrantedScopes(true); // incremental auth
$client->setApprovalPrompt('force');
$client->setScopes(array(
'https://www.googleapis.com/auth/plus.me',
'https://www.googleapis.com/auth/userinfo.email',
'https://www.googleapis.com/auth/userinfo.profile',
'https://www.googleapis.com/auth/youtube',
'https://www.googleapis.com/auth/youtube.upload'
));
Run Code Online (Sandbox Code Playgroud)
我也一直在寻找解决方案,但找不到。
我正在单页应用程序中开发购物车。
目前,登录的用户可以将商品添加到购物车,我使用react、redux、Express.js 和 mongoose 将商品存储到猫鼬的用户表中,但现在我希望未登录的用户将商品添加到购物车。
面临逻辑问题,我如何管理这个问题,因为如果用户未登录,那么我如何存储用户添加的购物车项目?许多未登录的用户可以将商品添加到购物车,但我如何知道哪个购物车属于哪个用户,因为他们没有登录(如果我将购物车存储在数据库表中)。
例如我面临的问题:
购物车物品的存储位置。
如果我将它们保存在猫鼬数据库中,那么我如何知道哪个用户在哪个浏览器上将此商品添加到购物车,因为用户未登录并且它是单页应用程序,所以我无法像在 php 中那样利用会话。
用户登录后,我将如何将购物车项目同步到用户,因为用户在浏览器上,并且当他将项目添加到购物车时我没有用户 ID。
php ×2
express ×1
facebook ×1
google-api ×1
google-oauth ×1
laravel ×1
laravel-5 ×1
node.js ×1
oauth ×1
react-redux ×1
reactjs ×1
redux ×1