forked from friendica/friendica-addons
fbpost: Speeding up the settings page by reducing the calls to facebook.
This commit is contained in:
parent
a477266bd9
commit
ee22754ac0
1 changed files with 24 additions and 11 deletions
|
@ -134,10 +134,6 @@ function fbpost_post(&$a) {
|
||||||
$uid = local_user();
|
$uid = local_user();
|
||||||
if($uid){
|
if($uid){
|
||||||
|
|
||||||
|
|
||||||
$fb_limited = get_config('facebook','crestrict');
|
|
||||||
|
|
||||||
|
|
||||||
$value = ((x($_POST,'post_by_default')) ? intval($_POST['post_by_default']) : 0);
|
$value = ((x($_POST,'post_by_default')) ? intval($_POST['post_by_default']) : 0);
|
||||||
set_pconfig($uid,'facebook','post_by_default', $value);
|
set_pconfig($uid,'facebook','post_by_default', $value);
|
||||||
|
|
||||||
|
@ -193,15 +189,32 @@ function fbpost_content(&$a) {
|
||||||
settings_init($a);
|
settings_init($a);
|
||||||
|
|
||||||
$o = '';
|
$o = '';
|
||||||
|
$accounts = array();
|
||||||
|
|
||||||
$fb_installed = false;
|
$fb_installed = false;
|
||||||
if (get_pconfig(local_user(),'facebook','post')) {
|
if (get_pconfig(local_user(),'facebook','post')) {
|
||||||
$access_token = get_pconfig(local_user(),'facebook','access_token');
|
$access_token = get_pconfig(local_user(),'facebook','access_token');
|
||||||
if ($access_token) {
|
if ($access_token) {
|
||||||
$s = fetch_url('https://graph.facebook.com/me/feed?access_token=' . $access_token);
|
// fetching the list of accounts to check, if facebook is working
|
||||||
|
// The value is needed several lines below.
|
||||||
|
$url = 'https://graph.facebook.com/me/accounts';
|
||||||
|
$s = fetch_url($url."?access_token=".$access_token, false, $redirects, 10);
|
||||||
if($s) {
|
if($s) {
|
||||||
$j = json_decode($s);
|
$accounts = json_decode($s);
|
||||||
if (isset($j->data)) $fb_installed = true;
|
if (isset($accounts->data))
|
||||||
|
$fb_installed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// I'm not totally sure, if this above will work in every situation,
|
||||||
|
// So this old code will be called as well.
|
||||||
|
if (!$fb_installed) {
|
||||||
|
$url ="https://graph.facebook.com/me/feed";
|
||||||
|
$s = fetch_url($url."?access_token=".$access_token."&limit=1", false, $redirects, 10);
|
||||||
|
if($s) {
|
||||||
|
$j = json_decode($s);
|
||||||
|
if (isset($j->data))
|
||||||
|
$fb_installed = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -265,9 +278,9 @@ function fbpost_content(&$a) {
|
||||||
$post_to_page = get_pconfig(local_user(),'facebook','post_to_page');
|
$post_to_page = get_pconfig(local_user(),'facebook','post_to_page');
|
||||||
$page_access_token = get_pconfig(local_user(),'facebook','page_access_token');
|
$page_access_token = get_pconfig(local_user(),'facebook','page_access_token');
|
||||||
$fb_token = get_pconfig($a->user['uid'],'facebook','access_token');
|
$fb_token = get_pconfig($a->user['uid'],'facebook','access_token');
|
||||||
$url = 'https://graph.facebook.com/me/accounts';
|
//$url = 'https://graph.facebook.com/me/accounts';
|
||||||
$x = fetch_url($url."?access_token=".$fb_token);
|
//$x = fetch_url($url."?access_token=".$fb_token, false, $redirects, 10);
|
||||||
$accounts = json_decode($x);
|
//$accounts = json_decode($x);
|
||||||
|
|
||||||
$o .= t("Post to page/group:")."<select name='post_to_page'>";
|
$o .= t("Post to page/group:")."<select name='post_to_page'>";
|
||||||
if (intval($post_to_page) == 0)
|
if (intval($post_to_page) == 0)
|
||||||
|
@ -284,7 +297,7 @@ function fbpost_content(&$a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$url = 'https://graph.facebook.com/me/groups';
|
$url = 'https://graph.facebook.com/me/groups';
|
||||||
$x = fetch_url($url."?access_token=".$fb_token);
|
$x = fetch_url($url."?access_token=".$fb_token, false, $redirects, 10);
|
||||||
$groups = json_decode($x);
|
$groups = json_decode($x);
|
||||||
|
|
||||||
foreach($groups->data as $group) {
|
foreach($groups->data as $group) {
|
||||||
|
|
Loading…
Reference in a new issue