protected function authTwitter($save_name) { $config = $this->config; $conn = new TwitterOAuth($config['consumer_key'], $config['consumer_secret']); $request_token = $conn->getRequestToken(); if ($request_token === false || $conn->lastStatusCode() != 200) { throw new RuntimeException("Error fetching Twitter auth token: Status code " . $conn->lastStatusCode() . '; ' . $conn->http_error); } $url = $conn->getAuthorizeURL($request_token); // Automatically send the user to the auth page. $ui = new UI(); $ui->openBrowser($url); $pin = $ui->readline("Please visit {$url} then type the pin number: "); $conn = new TwitterOAuth($config['consumer_key'], $config['consumer_secret'], $request_token['oauth_token'], $request_token['oauth_token_secret']); $access_token = $conn->getAccessToken($pin); if ($access_token === false || $conn->lastStatusCode() != 200) { throw new RuntimeException("Error fetching Twitter access token: Status code " . $conn->lastStatusCode() . '; ' . $conn->http_error); } $this->config['oauth_token'] = $access_token['oauth_token']; $this->config['oauth_token_secret'] = $access_token['oauth_token_secret']; echo "Your Twitter token is " . $access_token['oauth_token'] . "\n"; echo "Your Twitter token secret is " . $access_token['oauth_token_secret'] . "\n"; echo "(Written to twitter-{$save_name}.txt)\n"; if (file_put_contents("twitter-{$save_name}.txt", $access_token['oauth_token'] . "\n" . $access_token['oauth_token_secret'])) { return; } throw new RuntimeException("Failed to save oauth token to twitter-{$save_name}.txt"); }
protected function authLastfm() { $vars = array(); $vars['apiKey'] = $this->config['api_key']; $vars['secret'] = $this->config['api_secret']; $token = new lastfmApiAuth('gettoken', $vars); if (!empty($token->error)) { throw new RuntimeException("Error fetching Last.fm auth token: " . $token->error['desc']); } $vars['token'] = $token->token; $url = 'http://www.last.fm/api/auth?api_key=' . $vars['apiKey'] . '&token=' . $vars['token']; // Automatically send the user to the auth page. $ui = new UI(); $ui->openBrowser($url); $ui->readline("Please visit {$url} then press Enter..."); $auth = new lastfmApiAuth('getsession', $vars); if (!empty($auth->error)) { throw new RuntimeException("Error fetching Last.fm session key: " . $auth->error['desc'] . ". (Did you authorize the app?)"); } echo "Your session key is {$auth->sessionKey} for user {$auth->username} (written to lastfm-{$auth->username}.txt)\n"; if (file_put_contents("lastfm-{$auth->username}.txt", $auth->sessionKey)) { return; } throw new RuntimeException("Failed to save session key to lastfm-{$auth->username}.txt"); }