X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=twitter%2Ftwitter.php;h=a460fd70f14b894f506805bcb45a7accec0ca4d1;hb=7e516b541dd92691ad490e1fb6efae123599cd85;hp=8b483c9ea0ef91f8a6a29024e9fe4653c3bc396d;hpb=5e88657095107c28724756080c2b6bb147ab9c07;p=friendica-addons.git
diff --git a/twitter/twitter.php b/twitter/twitter.php
index 8b483c9e..a460fd70 100644
--- a/twitter/twitter.php
+++ b/twitter/twitter.php
@@ -77,6 +77,7 @@ use Friendica\Model\Photo;
use Friendica\Model\Queue;
use Friendica\Model\User;
use Friendica\Object\Image;
+use Friendica\Util\DateTimeFormat;
use Friendica\Util\Network;
require_once 'boot.php';
@@ -158,6 +159,12 @@ function twitter_follow(App $a, &$contact)
$otoken = PConfig::get($uid, 'twitter', 'oauthtoken');
$osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
+ // If the addon is not configured (general or for this user) quit here
+ if (empty($ckey) || empty($csecret) || empty($otoken) || empty($osecret)) {
+ $contact = false;
+ return;
+ }
+
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
$connection->post('friendships/create', ['screen_name' => $nickname]);
@@ -193,11 +200,11 @@ function twitter_settings_post(App $a, $post)
return;
}
// don't check twitter settings if twitter submit button is not clicked
- if (!x($_POST, 'twitter-submit')) {
+ if (empty($_POST['twitter-disconnect']) && empty($_POST['twitter-submit'])) {
return;
}
- if (isset($_POST['twitter-disconnect'])) {
+ if (!empty($_POST['twitter-disconnect'])) {
/* * *
* if the twitter-disconnect checkbox is set, clear the OAuth key/secret pair
* from the user configuration
@@ -222,12 +229,20 @@ function twitter_settings_post(App $a, $post)
// the token and secret for which the PIN was generated were hidden in the settings
// form as token and token2, we need a new connection to Twitter using these token
// and secret to request a Access Token with the PIN
- $connection = new TwitterOAuth($ckey, $csecret, $_POST['twitter-token'], $_POST['twitter-token2']);
- $token = $connection->oauth("oauth/access_token", ["oauth_verifier" => $_POST['twitter-pin']]);
- // ok, now that we have the Access Token, save them in the user config
- PConfig::set(local_user(), 'twitter', 'oauthtoken', $token['oauth_token']);
- PConfig::set(local_user(), 'twitter', 'oauthsecret', $token['oauth_token_secret']);
- PConfig::set(local_user(), 'twitter', 'post', 1);
+ try {
+ if (empty($_POST['twitter-pin'])) {
+ throw new Exception(L10n::t('You submitted an empty PIN, please Sign In with Twitter again to get a new one.'));
+ }
+
+ $connection = new TwitterOAuth($ckey, $csecret, $_POST['twitter-token'], $_POST['twitter-token2']);
+ $token = $connection->oauth("oauth/access_token", ["oauth_verifier" => $_POST['twitter-pin']]);
+ // ok, now that we have the Access Token, save them in the user config
+ PConfig::set(local_user(), 'twitter', 'oauthtoken', $token['oauth_token']);
+ PConfig::set(local_user(), 'twitter', 'oauthsecret', $token['oauth_token_secret']);
+ PConfig::set(local_user(), 'twitter', 'post', 1);
+ } catch(Exception $e) {
+ info($e->getMessage());
+ }
// reload the Addon Settings page, if we don't do it see Bug #42
goaway('settings/connectors');
} else {
@@ -281,34 +296,28 @@ function twitter_settings(App $a, &$s)
$s .= '';
if ((!$ckey) && (!$csecret)) {
- /* * *
- * no global consumer keys
+ /* no global consumer keys
* display warning and skip personal config
*/
$s .= '
' . L10n::t('No consumer key pair for Twitter found. Please contact your site administrator.') . '
';
} else {
- /* * *
- * ok we have a consumer key pair now look into the OAuth stuff
- */
+ // ok we have a consumer key pair now look into the OAuth stuff
if ((!$otoken) && (!$osecret)) {
- /* * *
- * the user has not yet connected the account to twitter...
+ /* the user has not yet connected the account to twitter...
* get a temporary OAuth key/secret pair and display a button with
* which the user can request a PIN to connect the account to a
* account at Twitter.
*/
$connection = new TwitterOAuth($ckey, $csecret);
- $request_token = $connection->url('oauth/request_token', ['oauth_callback' => 'oob']);
- /* * *
- * make some nice form
- */
+ $result = $connection->oauth('oauth/request_token', ['oauth_callback' => 'oob']);
+
$s .= '
' . L10n::t('At this Friendica instance the Twitter addon was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your public posts will be posted to Twitter.') . '