[twitter] Use existing contact fields instead of guessing in twitter_unfollow

- Add `friendship/destroy` API call result logging
pull/1173/head
Hypolite Petovan 2021-09-26 07:36:49 -04:00
parent 5769d99478
commit b732cf8968
1 changed files with 3 additions and 8 deletions

View File

@ -177,16 +177,10 @@ function twitter_follow(App $a, array &$contact)
function twitter_unfollow(App $a, array &$hook_data)
{
$contact = $hook_data['contact'];
Logger::info('Check if contact is twitter contact', ['url' => $contact["url"]]);
if (!strstr($contact["url"], "://twitter.com") && !strstr($contact["url"], "@twitter.com")) {
if ($contact['netword'] !== Protocol::TWITTER) {
return;
}
// contact seems to be a twitter contact, so continue
$nickname = preg_replace("=https?://twitter.com/(.*)=ism", "$1", $contact["url"]);
$nickname = str_replace("@twitter.com", "", $nickname);
$uid = $a->getLoggedInUserId();
$ckey = DI::config()->get('twitter', 'consumerkey');
@ -201,7 +195,8 @@ function twitter_unfollow(App $a, array &$hook_data)
try {
$connection = new TwitterOAuth($ckey, $csecret, $otoken, $osecret);
$connection->post('friendships/destroy', ['screen_name' => $nickname]);
$result = $connection->post('friendships/destroy', ['screen_name' => $contact['nick']]);
Logger::info('[twitter] API call "friendship/destroy" successful', ['result' => $result]);
} catch(Exception $e) {
Logger::notice('[twitter] API call "friendships/destroy" failed', ['uid' => $uid, 'url' => $contact['url'], 'exception' => $e]);
}