我有一个使用facebook api 2.0版本的工作网站,但有一些问题。我意识到我的一些调用被低估了,所以我设置了composer并包含了facebook api。
我认为我的问题是我如何在我的网站包括api。
我使用require 'facebookAPI/src/facebook.php';
现在我使用composer
,这不起作用。
文件路径是,vendor/facebook/php-sdk-v4/src/facebook/这里没有facebook.php文件。
如何添加api?如果facebook。php不存在了?我是否使用不同的文件来实现不同的目标?最后. .我可以通过
使用自动装填机吗?require 'vendor/autoload.php';
如果还有什么我应该从那里做的吗?这是我的完整的当前代码,只是显示一个空白页时,页面加载。
<?php
require 'vendor/autoload.php';
$facebook = new Facebook(array(
'appId' => 'foo foo foo',
'secret' => 'foo foo foo',
));
$user = $facebook->getUser();
if ($user) {
try {
$user_info = $facebook->api('/' . $user);
$user_tags = $facebook->api('/' . $user . '/tagged_places');
$friends = $facebook->api('/' . $user . '/friends');
$user_feed = $facebook->api('/' . $user . '/feed/?with=location');
$friends_locations = $facebook->api('/' . $user . '/friends/?fields=location');
$user_checkins = $facebook->api('/' . $user . '/checkins');
$friends_checkins = $facebook->api('/' . $user . '/friends/checkins');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$params = array( 'next' => 'http://www.wuno.com/sandbox/actions/fbLogout.php' );
$logoutUrl = $facebook->getLogoutUrl($params);
} else {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'user_tagged_places, email, publish_actions, publish_stream, user_birthday, user_work_history, user_hometown, user_photos, user_about_me, user_checkins, friends_checkins, user_location, friends_location, read_stream, user_status, friends_status')
);
}
?>
Facebook api v-4使用namespaces
namespace
A namespace is a way of grouping code that exists across multiple files without having a naming collision. That is, you can have the same named class in two different places if they are encapsulated within namespaces.
所以在上面问题的代码中,FB API
装载了vendor
,并像这样调用,
require 'vendor/autoload.php';
现在添加了FB API
,您只需要使用namespace
的类,无论您想要完成什么。
在我的情况下,我抛弃了vendor,像这样添加了这些类,
// include required classes from Facebook SDK
require_once( 'facebook/src/Facebook/FacebookHttpable.php' );
require_once( 'facebook/src/Facebook/FacebookCurl.php' );
require_once( 'facebook/src/Facebook/FacebookCurlHttpClient.php' );
require_once( 'facebook/src/Facebook/FacebookSession.php' );
require_once( 'facebook/src/Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'facebook/src/Facebook/FacebookRequest.php' );
require_once( 'facebook/src/Facebook/FacebookResponse.php' );
require_once( 'facebook/src/Facebook/FacebookSDKException.php' );
require_once( 'facebook/src/Facebook/FacebookRequestException.php' );
require_once( 'facebook/src/Facebook/FacebookOtherException.php' );
require_once( 'facebook/src/Facebook/FacebookAuthorizationException.php' );
require_once( 'facebook/src/Facebook/GraphObject.php' );
require_once( 'facebook/src/Facebook/GraphSessionInfo.php' );
// Called class with namespace
use FacebookFacebookHttpable;
use FacebookFacebookCurl;
use FacebookFacebookCurlHttpClient;
use FacebookFacebookSession;
use FacebookFacebookRedirectLoginHelper;
use FacebookFacebookRequest;
use FacebookFacebookResponse;
use FacebookFacebookSDKException;
use FacebookFacebookRequestException;
use FacebookFacebookOtherException;
use FacebookFacebookAuthorizationException;
use FacebookGraphObject;
use FacebookGraphSessionInfo;
请注意,这是而不是
/
完成的
你想要用FB API
实现的每个任务可能需要不同的类,然后包括在我的答案中。