Update Twitter addon
- Replace Codebird with latest version of TwitterOAuth from addon vendor - Remove references to library/twitteroauth.php, include/bbcode.php and addon/twitter/codebird.php - Remove unused obsolete cacert.pem
This commit is contained in:
parent
0927c20007
commit
75d5fbbc70
3 changed files with 21 additions and 4983 deletions
3895
twitter/cacert.pem
3895
twitter/cacert.pem
File diff suppressed because it is too large
Load diff
1026
twitter/codebird.php
1026
twitter/codebird.php
File diff suppressed because it is too large
Load diff
|
@ -59,6 +59,7 @@
|
||||||
* Requirements: PHP5, curl [Slinky library]
|
* Requirements: PHP5, curl [Slinky library]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Abraham\TwitterOAuth\TwitterOAuth;
|
||||||
use Friendica\App;
|
use Friendica\App;
|
||||||
use Friendica\Content\OEmbed;
|
use Friendica\Content\OEmbed;
|
||||||
use Friendica\Content\Text\BBCode;
|
use Friendica\Content\Text\BBCode;
|
||||||
|
@ -76,7 +77,12 @@ use Friendica\Model\User;
|
||||||
use Friendica\Object\Image;
|
use Friendica\Object\Image;
|
||||||
use Friendica\Util\Network;
|
use Friendica\Util\Network;
|
||||||
|
|
||||||
|
require_once 'boot.php';
|
||||||
|
require_once 'include/dba.php';
|
||||||
require_once 'include/enotify.php';
|
require_once 'include/enotify.php';
|
||||||
|
require_once 'include/text.php';
|
||||||
|
|
||||||
|
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||||
|
|
||||||
define('TWITTER_DEFAULT_POLL_INTERVAL', 5); // given in minutes
|
define('TWITTER_DEFAULT_POLL_INTERVAL', 5); // given in minutes
|
||||||
|
|
||||||
|
@ -150,16 +156,8 @@ function twitter_follow(App $a, &$contact)
|
||||||
$otoken = PConfig::get($uid, 'twitter', 'oauthtoken');
|
$otoken = PConfig::get($uid, 'twitter', 'oauthtoken');
|
||||||
$osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
|
$osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
|
||||||
|
|
||||||
require_once "addon/twitter/codebird.php";
|
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
||||||
|
$connection->post('friendships/create', ['screen_name' => $nickname]);
|
||||||
$cb = \Codebird\Codebird::getInstance();
|
|
||||||
$cb->setConsumerKey($ckey, $csecret);
|
|
||||||
$cb->setToken($otoken, $osecret);
|
|
||||||
|
|
||||||
$parameters = [];
|
|
||||||
$parameters["screen_name"] = $nickname;
|
|
||||||
|
|
||||||
$user = $cb->friendships_create($parameters);
|
|
||||||
|
|
||||||
twitter_fetchuser($a, $uid, $nickname);
|
twitter_fetchuser($a, $uid, $nickname);
|
||||||
|
|
||||||
|
@ -217,7 +215,6 @@ function twitter_settings_post(App $a, $post)
|
||||||
if (isset($_POST['twitter-pin'])) {
|
if (isset($_POST['twitter-pin'])) {
|
||||||
// if the user supplied us with a PIN from Twitter, let the magic of OAuth happen
|
// if the user supplied us with a PIN from Twitter, let the magic of OAuth happen
|
||||||
logger('got a Twitter PIN');
|
logger('got a Twitter PIN');
|
||||||
require_once 'library/twitteroauth.php';
|
|
||||||
$ckey = Config::get('twitter', 'consumerkey');
|
$ckey = Config::get('twitter', 'consumerkey');
|
||||||
$csecret = Config::get('twitter', 'consumersecret');
|
$csecret = Config::get('twitter', 'consumersecret');
|
||||||
// the token and secret for which the PIN was generated were hidden in the settings
|
// the token and secret for which the PIN was generated were hidden in the settings
|
||||||
|
@ -298,7 +295,6 @@ function twitter_settings(App $a, &$s)
|
||||||
* which the user can request a PIN to connect the account to a
|
* which the user can request a PIN to connect the account to a
|
||||||
* account at Twitter.
|
* account at Twitter.
|
||||||
*/
|
*/
|
||||||
require_once 'library/twitteroauth.php';
|
|
||||||
$connection = new TwitterOAuth($ckey, $csecret);
|
$connection = new TwitterOAuth($ckey, $csecret);
|
||||||
$request_token = $connection->getRequestToken();
|
$request_token = $connection->getRequestToken();
|
||||||
$token = $request_token['oauth_token'];
|
$token = $request_token['oauth_token'];
|
||||||
|
@ -319,7 +315,6 @@ function twitter_settings(App $a, &$s)
|
||||||
* we have an OAuth key / secret pair for the user
|
* we have an OAuth key / secret pair for the user
|
||||||
* so let's give a chance to disable the postings to Twitter
|
* so let's give a chance to disable the postings to Twitter
|
||||||
*/
|
*/
|
||||||
require_once 'library/twitteroauth.php';
|
|
||||||
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
||||||
$details = $connection->get('account/verify_credentials');
|
$details = $connection->get('account/verify_credentials');
|
||||||
|
|
||||||
|
@ -398,11 +393,7 @@ function twitter_action(App $a, $uid, $pid, $action)
|
||||||
$otoken = PConfig::get($uid, 'twitter', 'oauthtoken');
|
$otoken = PConfig::get($uid, 'twitter', 'oauthtoken');
|
||||||
$osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
|
$osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
|
||||||
|
|
||||||
require_once "addon/twitter/codebird.php";
|
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
||||||
|
|
||||||
$cb = \Codebird\Codebird::getInstance();
|
|
||||||
$cb->setConsumerKey($ckey, $csecret);
|
|
||||||
$cb->setToken($otoken, $osecret);
|
|
||||||
|
|
||||||
$post = ['id' => $pid];
|
$post = ['id' => $pid];
|
||||||
|
|
||||||
|
@ -410,13 +401,13 @@ function twitter_action(App $a, $uid, $pid, $action)
|
||||||
|
|
||||||
switch ($action) {
|
switch ($action) {
|
||||||
case "delete":
|
case "delete":
|
||||||
// To-Do: $result = $cb->statuses_destroy($post);
|
// To-Do: $result = $connection->post('statuses/destroy', $post);
|
||||||
break;
|
break;
|
||||||
case "like":
|
case "like":
|
||||||
$result = $cb->favorites_create($post);
|
$result = $connection->post('favorites/create', $post);
|
||||||
break;
|
break;
|
||||||
case "unlike":
|
case "unlike":
|
||||||
$result = $cb->favorites_destroy($post);
|
$result = $connection->post('favorites/destroy', $post);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
logger("twitter_action '" . $action . "' send, result: " . print_r($result, true), LOGGER_DEBUG);
|
logger("twitter_action '" . $action . "' send, result: " . print_r($result, true), LOGGER_DEBUG);
|
||||||
|
@ -520,8 +511,6 @@ function twitter_post_hook(App $a, &$b)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once 'library/twitteroauth.php';
|
|
||||||
require_once 'include/bbcode.php';
|
|
||||||
$tweet = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
$tweet = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
||||||
|
|
||||||
$max_char = 280;
|
$max_char = 280;
|
||||||
|
@ -544,29 +533,16 @@ function twitter_post_hook(App $a, &$b)
|
||||||
|
|
||||||
// and now tweet it :-)
|
// and now tweet it :-)
|
||||||
if (strlen($msg) && ($image != "")) {
|
if (strlen($msg) && ($image != "")) {
|
||||||
$img_str = Network::fetchUrl($image);
|
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
||||||
|
$media = $connection->upload('media/upload', ['media' => $image]);
|
||||||
|
|
||||||
$tempfile = tempnam(get_temppath(), "cache");
|
$post = ['status' => $msg, 'media_ids' => $media->media_id_string];
|
||||||
file_put_contents($tempfile, $img_str);
|
|
||||||
|
|
||||||
// Twitter had changed something so that the old library doesn't work anymore
|
|
||||||
// so we are using a new library for twitter
|
|
||||||
// To-Do:
|
|
||||||
// Switching completely to this library with all functions
|
|
||||||
require_once "addon/twitter/codebird.php";
|
|
||||||
|
|
||||||
$cb = \Codebird\Codebird::getInstance();
|
|
||||||
$cb->setConsumerKey($ckey, $csecret);
|
|
||||||
$cb->setToken($otoken, $osecret);
|
|
||||||
|
|
||||||
$post = ['status' => $msg, 'media[]' => $tempfile];
|
|
||||||
|
|
||||||
if ($iscomment) {
|
if ($iscomment) {
|
||||||
$post["in_reply_to_status_id"] = substr($orig_post["uri"], 9);
|
$post["in_reply_to_status_id"] = substr($orig_post["uri"], 9);
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = $cb->statuses_updateWithMedia($post);
|
$result = $connection->post('statuses/update', $post);
|
||||||
unlink($tempfile);
|
|
||||||
|
|
||||||
logger('twitter_post_with_media send, result: ' . print_r($result, true), LOGGER_DEBUG);
|
logger('twitter_post_with_media send, result: ' . print_r($result, true), LOGGER_DEBUG);
|
||||||
|
|
||||||
|
@ -627,7 +603,7 @@ function twitter_post_hook(App $a, &$b)
|
||||||
}
|
}
|
||||||
|
|
||||||
$s = serialize(['url' => $url, 'item' => $b['id'], 'post' => $post]);
|
$s = serialize(['url' => $url, 'item' => $b['id'], 'post' => $post]);
|
||||||
|
|
||||||
Queue::add($a->contact, NETWORK_TWITTER, $s);
|
Queue::add($a->contact, NETWORK_TWITTER, $s);
|
||||||
notice(L10n::t('Twitter post failed. Queued for retry.') . EOL);
|
notice(L10n::t('Twitter post failed. Queued for retry.') . EOL);
|
||||||
} elseif ($iscomment) {
|
} elseif ($iscomment) {
|
||||||
|
@ -870,7 +846,6 @@ function twitter_fetchtimeline(App $a, $uid)
|
||||||
require_once 'include/items.php';
|
require_once 'include/items.php';
|
||||||
require_once 'mod/share.php';
|
require_once 'mod/share.php';
|
||||||
|
|
||||||
require_once 'library/twitteroauth.php';
|
|
||||||
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
||||||
|
|
||||||
$parameters = ["exclude_replies" => true, "trim_user" => false, "contributor_details" => true, "include_rts" => true, "tweet_mode" => "extended"];
|
$parameters = ["exclude_replies" => true, "trim_user" => false, "contributor_details" => true, "include_rts" => true, "tweet_mode" => "extended"];
|
||||||
|
@ -953,15 +928,8 @@ function twitter_queue_hook(App $a, &$b)
|
||||||
|
|
||||||
$z = unserialize($x['content']);
|
$z = unserialize($x['content']);
|
||||||
|
|
||||||
require_once "addon/twitter/codebird.php";
|
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
||||||
|
$result = $connection->post($z['url'], $z['post']);
|
||||||
$cb = \Codebird\Codebird::getInstance();
|
|
||||||
$cb->setConsumerKey($ckey, $csecret);
|
|
||||||
$cb->setToken($otoken, $osecret);
|
|
||||||
|
|
||||||
if ($z['url'] == "statuses/update") {
|
|
||||||
$result = $cb->statuses_update($z['post']);
|
|
||||||
}
|
|
||||||
|
|
||||||
logger('twitter_queue: post result: ' . print_r($result, true), LOGGER_DEBUG);
|
logger('twitter_queue: post result: ' . print_r($result, true), LOGGER_DEBUG);
|
||||||
|
|
||||||
|
@ -1132,12 +1100,6 @@ function twitter_fetchuser(App $a, $uid, $screen_name = "", $user_id = "")
|
||||||
$otoken = PConfig::get($uid, 'twitter', 'oauthtoken');
|
$otoken = PConfig::get($uid, 'twitter', 'oauthtoken');
|
||||||
$osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
|
$osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
|
||||||
|
|
||||||
require_once "addon/twitter/codebird.php";
|
|
||||||
|
|
||||||
$cb = \Codebird\Codebird::getInstance();
|
|
||||||
$cb->setConsumerKey($ckey, $csecret);
|
|
||||||
$cb->setToken($otoken, $osecret);
|
|
||||||
|
|
||||||
$r = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
|
||||||
intval($uid));
|
intval($uid));
|
||||||
|
|
||||||
|
@ -1158,7 +1120,8 @@ function twitter_fetchuser(App $a, $uid, $screen_name = "", $user_id = "")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fetching user data
|
// Fetching user data
|
||||||
$user = $cb->users_show($parameters);
|
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
||||||
|
$user = $connection->get('users/show', $parameters);
|
||||||
|
|
||||||
if (!is_object($user)) {
|
if (!is_object($user)) {
|
||||||
return;
|
return;
|
||||||
|
@ -1686,7 +1649,6 @@ function twitter_fetchhometimeline(App $a, $uid)
|
||||||
$application_name = $a->get_hostname();
|
$application_name = $a->get_hostname();
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once 'library/twitteroauth.php';
|
|
||||||
require_once 'include/items.php';
|
require_once 'include/items.php';
|
||||||
|
|
||||||
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
||||||
|
@ -1888,8 +1850,6 @@ function twitter_fetch_own_contact(App $a, $uid)
|
||||||
$contact_id = 0;
|
$contact_id = 0;
|
||||||
|
|
||||||
if ($own_id == "") {
|
if ($own_id == "") {
|
||||||
require_once 'library/twitteroauth.php';
|
|
||||||
|
|
||||||
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
||||||
|
|
||||||
// Fetching user data
|
// Fetching user data
|
||||||
|
@ -1956,7 +1916,6 @@ function twitter_is_retweet(App $a, $uid, $body)
|
||||||
$otoken = PConfig::get($uid, 'twitter', 'oauthtoken');
|
$otoken = PConfig::get($uid, 'twitter', 'oauthtoken');
|
||||||
$osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
|
$osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
|
||||||
|
|
||||||
require_once 'library/twitteroauth.php';
|
|
||||||
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
|
||||||
|
|
||||||
$result = $connection->post('statuses/retweet/' . $id);
|
$result = $connection->post('statuses/retweet/' . $id);
|
||||||
|
|
Loading…
Reference in a new issue