/** * Used to post synched status on facebook. * * @access public * @param array $fbData facebook data of user * @return void */ function facebook_connect_post_status($fbData) { elgg_load_library('facebook'); $fb = facebookservice_api(); $site = elgg_get_site_entity(); $uid = $fbData['user_profile']['id']; $access_token = $fbData['user_profile']['accessToken']; // Facebook Posting Parameters // $link = elgg_get_site_url(); $message = $user->name . ' just synched his/her facebook account with ' . $site->name; $picture = elgg_get_site_url() . '_graphics/elgg_logo.png'; $description = $site->name . ' is the social network for connecting people.'; $linkData = ['link' => $link, 'message' => $message, 'picture' => $picture, 'description' => $description]; try { // Returns a `Facebook\FacebookResponse` object $response = $fb->post('/' . $uid . '/feed', $linkData, "{$access_token}"); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo '3. Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo '3. Facebook SDK returned an error: ' . $e->getMessage(); exit; } }
/** * Used to post synched status on facebook. * * @access public * @param array $fbData facebook data of user * @return void */ function facebook_connect_post_status($fbData) { elgg_load_library('facebook'); $fb = facebookservice_api(); $site = elgg_get_site_entity(); $uid = $fbData['user_profile']['id']; $access_token = $fbData['user_profile']['accessToken']; // Facebook Posting Parameters // $link = elgg_get_site_url(); $username = $user->name; $sitename = $vars['config']->sitename; $message = $username . ' just synched his/her facebook account with ' . $sitename; $picture = $link . '_graphics/elgg_logo.png'; $description = $sitename . ' is the social network for connecting people.'; $post_message = elgg_get_plugin_setting('post_message', 'facebook_connect'); if (!empty($post_message)) { $temp_str = elgg_get_plugin_setting('post_message', 'facebook_connect'); $temp_str2 = str_replace("%username%", "{$username}", $temp_str); $message = str_replace("%sitename%", "{$sitename}", $temp_str2); } $post_img = elgg_get_plugin_setting('post_img', 'facebook_connect'); if (!empty($post_img)) { $picture = elgg_get_plugin_setting('post_img', 'facebook_connect'); } $post_descp = elgg_get_plugin_setting('post_descp', 'facebook_connect'); if (!empty($post_descp)) { $temp_str = elgg_get_plugin_setting('post_descp', 'facebook_connect'); $temp_str2 = str_replace("%username%", "{$username}", $temp_str); $description = str_replace("%sitename%", "{$sitename}", $temp_str2); } $linkData = ['link' => $link, 'message' => $message, 'picture' => $picture, 'description' => $description]; try { // Returns a `Facebook\FacebookResponse` object $response = $fb->post('/me/feed', $linkData, "{$access_token}"); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo '3. Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo '3. Facebook SDK returned an error: ' . $e->getMessage(); exit; } }
/** * Retrieve a user's friendrequest on facebook.There isn't any graph api endpoint to retrieve a users friend request at the time of writing this code * * @param unknown_type $hook * @param unknown_type $entity_type * @param unknown_type $returnvalue * @param unknown_type $params */ function facebookservice_friendrequest($hook, $entity_type, $returnvalue, $params) { $user_id = $params['userid']; $access_token = elgg_get_plugin_user_setting('access_token', $user_id, 'facebook_api'); $target = elgg_get_plugin_user_setting('uid', $user_id, 'facebook_api'); $attachment = array('access_token' => $access_token); if (!($access_token && $target)) { return NULL; } $facebook = facebookservice_api(); $fbrequest = $facebook->api(array('method' => 'fql.query', 'query' => "SELECT uid_from FROM friend_request WHERE uid_to={$target} ", 'access_token' => $access_token)); return $fbrequest; }
<?php /** * */ $user_id = elgg_get_logged_in_user_guid(); $facebook_id = elgg_get_plugin_user_setting('uid', $user_id, 'facebook_connect'); $access_token = elgg_get_plugin_user_setting('access_token', $user_id, 'facebook_connect'); $site_name = elgg_get_site_entity()->name; echo '<div>' . elgg_echo('facebook_connect:usersettings:description', array($site_name)) . '</div>'; if (!$facebook_id || !$access_token) { // send user off to validate account $callback = elgg_get_site_url() . 'facebook_connect/authorize'; $request_link = facebook_connect_get_authorize_url($callback); echo '<div>' . elgg_echo('facebook_connect:usersettings:request', array($request_link, $site_name)) . '</div>'; } else { elgg_load_library('facebook'); $facebook = facebookservice_api(); $user = $facebook->api('/me', 'GET', array('access_token' => $access_token)); echo '<p>' . sprintf(elgg_echo('facebook_connect:usersettings:authorized'), $user['name'], $user['link']) . '</p>'; $url = elgg_get_site_url() . "facebook_connect/revoke"; echo '<div>' . sprintf(elgg_echo('facebook_connect:usersettings:revoke'), $url) . '</div>'; }
/** * Returns the url to authorize a user. * * @param string $next The return URL. */ function facebook_connect_get_authorize_url($next = '') { global $SESSION; if (!$next) { // default to login page $next = elgg_get_site_url() . 'facebook_connect/login'; } $facebook = facebookservice_api(); return $facebook->getLoginUrl(array('client_id' => elgg_get_plugin_setting('consumer_key', 'facebook_connect'), 'redirect_uri' => $next, 'scope' => 'user_status,publish_stream,email,user_about_me,')); }
/** * Used to post synched status on facebook. * * @access public * @param array $fbData facebook data of user * @return void */ function facebook_connect_post_status($fbData) { if (facebook_connect_allow_post_on_facebook()) { elgg_load_library('facebook'); $facebook = facebookservice_api(); $site = elgg_get_site_entity(); $uid = $fbData['user_profile']['id']; $permissions = $facebook->api('/' . $uid . '/permissions'); if (array_key_exists('publish_stream', $permissions['data'][0])) { $message = $user->name . ' just synched his/her facebook account with ' . $site->name; $params = array('link' => elgg_get_site_url(), 'message' => $message, 'picture' => elgg_get_site_url() . '_graphics/elgg_logo.png', 'description' => $site->name . ' is the social network for connecting people.'); try { $status = $facebook->api('/' . $uid . '/feed/', 'POST', $params); } catch (FacebookApiException $e) { } } } }
/** * Returns the url to authorize a user. * * @param string $next The return URL. */ function facebook_api_get_authorize_url($next = '') { global $SESSION; if (!$next) { // default to login page $next = elgg_get_site_url() . 'facebook_api/login'; } $facebook = facebookservice_api(); return $facebook->getLoginUrl(array('next' => $next, 'req_perms' => 'offline_access,user_about_me,email,user_status,publish_stream,read_stream,read_requests ')); }