/** * Update the Facebook page information stored for the site. * * @since 1.1 * * @uses update_option() * @global Facebook_Loader $facebook_loader request app access secret to hash app access token * @param array $page_data data returned from Facebook Graph API permissions call * @return void */ public static function update_publish_to_page($page_data) { global $facebook_loader; if (!(is_array($page_data) && !empty($page_data) && isset($page_data['id']))) { return; } $current_user_id = get_current_user_id(); if (!$current_user_id) { return; } if (!class_exists('Facebook_User')) { require_once dirname(dirname(__FILE__)) . '/facebook-user.php'; } // request access token based on current user session and specified page $write_pages = Facebook_User::get_permissioned_pages('CREATE_CONTENT'); if (!($write_pages && is_array($write_pages) && isset($write_pages[$page_data['id']]) && isset($write_pages[$page_data['id']]['name']) && isset($write_pages[$page_data['id']]['access_token']))) { return; } if (!class_exists('Facebook_WP_Extend')) { require_once dirname(dirname(__FILE__)) . '/includes/facebook-php-sdk/class-facebook-wp.php'; } // get long lived access token $access_token = Facebook_WP_Extend::exchange_token($write_pages[$page_data['id']]['access_token']); if (!$access_token) { return; } $value = array('id' => $page_data['id'], 'name' => $write_pages[$page_data['id']]['name'], 'access_token' => $access_token, 'set_by_user' => $current_user_id); if (isset($write_pages[$page_data['id']]['link'])) { $value['link'] = $write_pages[$page_data['id']]['link']; } if (isset($facebook_loader->credentials['app_secret'])) { $value['appsecret_proof'] = hash_hmac('sha256', $access_token, $facebook_loader->credentials['app_secret']); } update_option(self::OPTION_PUBLISH_TO_PAGE, $value); }