FacebookBridge - fail gracefully if the user has already deleted a
linked notice on Facebook.
This commit is contained in:
parent
2b0d1d9fc4
commit
7e6c0e542f
|
@ -103,6 +103,7 @@ class Facebookclient
|
||||||
*/
|
*/
|
||||||
static function facebookBroadcastNotice($notice)
|
static function facebookBroadcastNotice($notice)
|
||||||
{
|
{
|
||||||
|
common_debug('Facebook broadcast');
|
||||||
$client = new Facebookclient($notice);
|
$client = new Facebookclient($notice);
|
||||||
return $client->sendNotice();
|
return $client->sendNotice();
|
||||||
}
|
}
|
||||||
|
@ -424,12 +425,6 @@ class Facebookclient
|
||||||
);
|
);
|
||||||
return true;
|
return true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// @fixme: Facebook returns these 2xx permission errors sometimes
|
|
||||||
// FOR NO GOOD REASON AT ALL! It would be better to retry a few times
|
|
||||||
// over an extended period of time to instead of immediately
|
|
||||||
// disconnecting.
|
|
||||||
|
|
||||||
case 200: // Permissions error
|
case 200: // Permissions error
|
||||||
case 250: // Updating status requires the extended permission status_update
|
case 250: // Updating status requires the extended permission status_update
|
||||||
$this->disconnect();
|
$this->disconnect();
|
||||||
|
@ -979,40 +974,48 @@ BODY;
|
||||||
|
|
||||||
if (!empty($this->flink) && !empty($n2i)) {
|
if (!empty($this->flink) && !empty($n2i)) {
|
||||||
|
|
||||||
$result = $this->facebook->api(
|
try {
|
||||||
array(
|
|
||||||
'method' => 'stream.remove',
|
|
||||||
'post_id' => $n2i->item_id,
|
|
||||||
'uid' => $this->flink->foreign_id
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!empty($result) && result == true) {
|
$result = $this->facebook->api(
|
||||||
|
array(
|
||||||
common_log(
|
'method' => 'stream.remove',
|
||||||
LOG_INFO,
|
'post_id' => $n2i->item_id,
|
||||||
sprintf(
|
'uid' => $this->flink->foreign_id
|
||||||
'Deleted Facebook item: %s for %s (%d), fbuid %d',
|
)
|
||||||
$n2i->item_id,
|
|
||||||
$this->user->nickname,
|
|
||||||
$this->user->id,
|
|
||||||
$this->flink->foreign_id
|
|
||||||
),
|
|
||||||
__FILE__
|
|
||||||
);
|
);
|
||||||
|
|
||||||
$n2i->delete();
|
if (!empty($result) && result == true) {
|
||||||
|
|
||||||
} else {
|
common_log(
|
||||||
|
LOG_INFO,
|
||||||
|
sprintf(
|
||||||
|
'Deleted Facebook item: %s for %s (%d), fbuid %d',
|
||||||
|
$n2i->item_id,
|
||||||
|
$this->user->nickname,
|
||||||
|
$this->user->id,
|
||||||
|
$this->flink->foreign_id
|
||||||
|
),
|
||||||
|
__FILE__
|
||||||
|
);
|
||||||
|
|
||||||
|
$n2i->delete();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
throw new FaceboookApiException(var_export($result, true));
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (FacebookApiException $e) {
|
||||||
common_log(
|
common_log(
|
||||||
LOG_WARNING,
|
LOG_WARNING,
|
||||||
sprintf(
|
sprintf(
|
||||||
'Could not deleted Facebook item: %s for %s (%d), fbuid %d',
|
'Could not deleted Facebook item: %s for %s (%d), '
|
||||||
|
. 'fbuid %d - (API error: %s) item already deleted '
|
||||||
|
. 'on Facebook? ',
|
||||||
$n2i->item_id,
|
$n2i->item_id,
|
||||||
$this->user->nickname,
|
$this->user->nickname,
|
||||||
$this->user->id,
|
$this->user->id,
|
||||||
$this->flink->foreign_id
|
$this->flink->foreign_id,
|
||||||
|
$e
|
||||||
),
|
),
|
||||||
__FILE__
|
__FILE__
|
||||||
);
|
);
|
||||||
|
@ -1030,38 +1033,45 @@ BODY;
|
||||||
|
|
||||||
if (!empty($this->flink) && !empty($n2i)) {
|
if (!empty($this->flink) && !empty($n2i)) {
|
||||||
|
|
||||||
$result = $this->facebook->api(
|
try {
|
||||||
array(
|
|
||||||
'method' => 'stream.addlike',
|
|
||||||
'post_id' => $n2i->item_id,
|
|
||||||
'uid' => $this->flink->foreign_id
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!empty($result) && result == true) {
|
$result = $this->facebook->api(
|
||||||
|
array(
|
||||||
common_log(
|
'method' => 'stream.addlike',
|
||||||
LOG_INFO,
|
'post_id' => $n2i->item_id,
|
||||||
sprintf(
|
'uid' => $this->flink->foreign_id
|
||||||
'Added like for item: %s for %s (%d), fbuid %d',
|
)
|
||||||
$n2i->item_id,
|
|
||||||
$this->user->nickname,
|
|
||||||
$this->user->id,
|
|
||||||
$this->flink->foreign_id
|
|
||||||
),
|
|
||||||
__FILE__
|
|
||||||
);
|
);
|
||||||
|
|
||||||
} else {
|
if (!empty($result) && result == true) {
|
||||||
|
|
||||||
|
common_log(
|
||||||
|
LOG_INFO,
|
||||||
|
sprintf(
|
||||||
|
'Added like for item: %s for %s (%d), fbuid %d',
|
||||||
|
$n2i->item_id,
|
||||||
|
$this->user->nickname,
|
||||||
|
$this->user->id,
|
||||||
|
$this->flink->foreign_id
|
||||||
|
),
|
||||||
|
__FILE__
|
||||||
|
);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
throw new FacebookApiException(var_export($result, true));
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (FacebookApiException $e) {
|
||||||
common_log(
|
common_log(
|
||||||
LOG_WARNING,
|
LOG_WARNING,
|
||||||
sprintf(
|
sprintf(
|
||||||
'Could not like Facebook item: %s for %s (%d), fbuid %d',
|
'Could not like Facebook item: %s for %s (%d), '
|
||||||
|
. 'fbuid %d (API error: %s)',
|
||||||
$n2i->item_id,
|
$n2i->item_id,
|
||||||
$this->user->nickname,
|
$this->user->nickname,
|
||||||
$this->user->id,
|
$this->user->id,
|
||||||
$this->flink->foreign_id
|
$this->flink->foreign_id,
|
||||||
|
$e
|
||||||
),
|
),
|
||||||
__FILE__
|
__FILE__
|
||||||
);
|
);
|
||||||
|
@ -1079,38 +1089,45 @@ BODY;
|
||||||
|
|
||||||
if (!empty($this->flink) && !empty($n2i)) {
|
if (!empty($this->flink) && !empty($n2i)) {
|
||||||
|
|
||||||
$result = $this->facebook->api(
|
try {
|
||||||
array(
|
|
||||||
'method' => 'stream.removeLike',
|
|
||||||
'post_id' => $n2i->item_id,
|
|
||||||
'uid' => $this->flink->foreign_id
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!empty($result) && result == true) {
|
$result = $this->facebook->api(
|
||||||
|
array(
|
||||||
common_log(
|
'method' => 'stream.removeLike',
|
||||||
LOG_INFO,
|
'post_id' => $n2i->item_id,
|
||||||
sprintf(
|
'uid' => $this->flink->foreign_id
|
||||||
'Removed like for item: %s for %s (%d), fbuid %d',
|
)
|
||||||
$n2i->item_id,
|
|
||||||
$this->user->nickname,
|
|
||||||
$this->user->id,
|
|
||||||
$this->flink->foreign_id
|
|
||||||
),
|
|
||||||
__FILE__
|
|
||||||
);
|
);
|
||||||
|
|
||||||
} else {
|
if (!empty($result) && result == true) {
|
||||||
|
|
||||||
common_log(
|
common_log(
|
||||||
|
LOG_INFO,
|
||||||
|
sprintf(
|
||||||
|
'Removed like for item: %s for %s (%d), fbuid %d',
|
||||||
|
$n2i->item_id,
|
||||||
|
$this->user->nickname,
|
||||||
|
$this->user->id,
|
||||||
|
$this->flink->foreign_id
|
||||||
|
),
|
||||||
|
__FILE__
|
||||||
|
);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
throw new FacebookApiException(var_export($result, true));
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (FacebookApiException $e) {
|
||||||
|
common_log(
|
||||||
LOG_WARNING,
|
LOG_WARNING,
|
||||||
sprintf(
|
sprintf(
|
||||||
'Could not remove like for Facebook item: %s for %s (%d), fbuid %d',
|
'Could not remove like for Facebook item: %s for %s '
|
||||||
|
. '(%d), fbuid %d (API error: %s)',
|
||||||
$n2i->item_id,
|
$n2i->item_id,
|
||||||
$this->user->nickname,
|
$this->user->nickname,
|
||||||
$this->user->id,
|
$this->user->id,
|
||||||
$this->flink->foreign_id
|
$this->flink->foreign_id,
|
||||||
|
$e
|
||||||
),
|
),
|
||||||
__FILE__
|
__FILE__
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user