不幸的是,我已经达到了一个死胡同。由于各种遗留原因和其他原因,我无法将系统升级到PHP 5.4。 according to Facebook,我需要5.4来运行最新的SDK。
我愿意接受较低的SDK,但是:
奖金问题:
应该将作曲家路径更改为使用旧版SDK?目前我有:
“facebook / php-sdk-v4”:“4.0。*”
答案 0 :(得分:2)
您仍然可以使用旧版本:https://github.com/facebookarchive/facebook-php-sdk
api电话是一样的。新的只是推荐的。您甚至可以在没有任何SDK的情况下使用自己的CURL调用。
您应该使用最新版本,但更改您的提供商可能是个好主意。每个认真的提供者支持PHP 5.4应该是绝对最低的。
对于旧的PHP,你真的不需要作曲家。只需下载并放入您的服务器即可。
答案 1 :(得分:2)
您仍然可以使用已弃用的(但仍然有效)facebookarchive/facebook-php-sdk。
我认为这不会很快改变,因为该代码在Github分叉了3000多次,并且可能仍有数千个应用程序使用它。
这里使用旧的Facebook PHP SDK(在我的服务器上使用PHP 5.3测试)成功获取用户信息 -
这是2016年,它仍然有效 - 包括Canvas回调和OAuth回调:
https://example.com/myapp/
别忘了 -
<!DOCTYPE HTML>
<HTML>
<HEAD>
<TITLE><?= TITLE ?></TITLE>
<SCRIPT SRC="//ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></SCRIPT>
<SCRIPT>
$(document).ready(function() {
//$.ajaxSetup({ cache: true });
$.getScript('//connect.facebook.net/en_US/sdk.js', function() {
FB.init({
'appId' : '<?= APP_ID ?>',
'xfbml' : false,
'cookie' : true,
'status' : true,
'version': 'v2.6'
});
FB.login(function(response) {
if (response.authResponse) {
console.log('Fetching your information.... ');
FB.api('/me?fields=id,first_name,gender', function(response) {
console.log(response);
});
} else {
console.log('User cancelled login or did not fully authorize.');
}
});
});
});
</SCRIPT>
</HEAD>
<BODY>
<?= $body ?>
<P><A HREF="<?= REDIRECT ?>?logout">Logout</A></P>
</BODY>
</HTML>
Canvas回调(也可选择注册为有效的OAuth2重定向网址)另一种选择是使用Facebook SDK for JavaScript(这里使用jQuery):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.abhishek.canddatastructureprograms.ProgramActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tV1"
android:text="CODE"
android:textColor="@android:color/holo_blue_dark"
android:textStyle="bold"
android:paddingTop="10dp"
android:paddingBottom="10dp" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TextView
android:padding="5dp"
android:layout_width="match_parent"
android:layout_height="300dp"
android:textColor="@android:color/black"
android:scrollHorizontally="true"
android:scrollbars="vertical|horizontal"
android:id="@+id/writeCodeTV"
android:text="CODE"
/>
</HorizontalScrollView>
</ScrollView>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tV2"
android:text="OUTPUT"
android:textColor="@android:color/holo_blue_dark"
android:textStyle="bold"
android:paddingBottom="10dp"
android:paddingTop="10dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp"
android:scrollbars="horizontal|vertical"
android:id="@+id/writeOutputTV"
android:textColor="@android:color/black"
android:text="CODE"
/>
</LinearLayout>
但是使用PHP SDK是优选的 - 因为信息已经存在(通过POST或HTTP重定向),并且因为每次加载页面时JavaScript SDK都显示登录弹出窗口或使页面变暗,实际上需要用户点击显示没有浏览器阻止它。
答案 2 :(得分:0)
不,使用旧版本的php-sdk,你不会冒任何风险。如上所述,您可以编写自己的卷曲而不使用SDK。这就是我的应用程序在2013年之前编写的方式。
答案 3 :(得分:-1)
这是旧版本:
{
"require": {
"facebook/php-sdk" : "3.2.3"
}
}
然后:
php composer.phar require facebook/php-sdk:3.2.3