/** * Sets the appropriate Twitter API access token using * a given Twitter Profile * * @param TwitterProfile $profile * * @return TwitterService */ public function setAccessTokenFromProfile(TwitterProfile $profile) { $tokens = $profile->get(['access_token', 'access_token_secret']); if (!empty($tokens['access_token'])) { $this->app['twitter']->setTokens($tokens['access_token'], $tokens['access_token_secret']); $this->profile = $profile; } else { // use the access token from profile that referenced this profile $referencingProfile = $profile->relation('most_recently_referenced_by'); // recursion would be nice here, but could be dangerous $tokens = $referencingProfile->get(['access_token', 'access_token_secret']); if ($referencingProfile->exists() && !empty($tokens['access_token'])) { $this->app['twitter']->setTokens($tokens['access_token'], $tokens['access_token_secret']); $this->profile = $referencingProfile; } } return $this; }