+ return HTTPSignature::transmit($signed, $profile['inbox'], $uid);
+ }
+
+ /**
+ * Transmits a "follow object" activity to a target
+ * This is a preparation for sending automated "follow" requests when receiving "Announce" messages
+ *
+ * @param string $object Object URL
+ * @param string $target Target profile
+ * @param integer $uid User ID
+ * @return bool
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws \ImagickException
+ * @throws \Exception
+ */
+ public static function sendFollowObject($object, $target, $uid)
+ {
+ $profile = APContact::getByURL($target);
+
+ $owner = User::getOwnerDataById($uid);
+
+ $data = ['@context' => ActivityPub::CONTEXT,
+ 'id' => System::baseUrl() . '/activity/' . System::createGUID(),
+ 'type' => 'Follow',
+ 'actor' => $owner['url'],
+ 'object' => $object,
+ 'instrument' => ['type' => 'Service', 'name' => BaseObject::getApp()->getUserAgent()],
+ 'to' => [$profile['url']]];
+
+ Logger::log('Sending follow ' . $object . ' to ' . $target . ' for user ' . $uid, Logger::DEBUG);
+
+ $signed = LDSignature::sign($data, $owner);
+ return HTTPSignature::transmit($signed, $profile['inbox'], $uid);