レポジトリ種類: SVN
<?php
namespace Site\Controller;
use Site\Lib\Activitypub;
use Site\Controller\BlogPost;
use Site\Controller\Mods;
class Fediverse extends BlogPost {
use Mods;
/**
* @param array $params パラメータ配列
* @return void
*/
public function apfinger(array $params): void {
try {
header('Content-Type: application/jrd+json');
$ap = new Activitypub();
echo $ap->getWebfinger();
exit;
} catch (\Exception $e) {
header('Content-Type: text/plain; charset=utf-8');
echo 'フェディバースの作成に失敗: '.$e->getMessage();
exit;
}
}
/**
* @param array $params パラメータ配列
* @return void
*/
public function apactor(array $params): void {
try {
header('Content-Type: application/activity+json');
$ap = new Activitypub();
echo $ap->getActor();
exit;
} catch (\Exception $e) {
header('Content-Type: text/plain; charset=utf-8');
echo 'フェディバースの作成に失敗: '.$e->getMessage();
exit;
}
}
/**
* @param array $params パラメータ配列
* @return void
*/
public function apinbox(array $params): void {
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
header('HTTP/1.1 405 Method Not Allowed');
header('Allow: POST');
exit;
}
$input = file_get_contents('php://input');
$activity = json_decode($input, true);
if (!$activity || !isset($activity['type'])) {
header('HTTP/1.1 400 Bad Request');
header('Content-Type: application/activity+json');
echo json_encode(['error' => '不正なアクティビティ']);
exit;
}
logger(\LogType::ActivityPub, "受付に入れた:".json_encode($activity));
try {
header('Content-Type: application/activity+json');
$ap = new Activitypub();
$ap->postInbox($activity);
exit;
} catch (\Exception $e) {
header('Content-Type: text/plain; charset=utf-8');
echo 'フェディバースの作成に失敗: '.$e->getMessage();
exit;
}
}
/**
* @param array $params パラメータ配列
* @return void
*/
public function apactivity(array $params): void {
$uuid = '';
if (isset($params['uuid'])) $uuid = $params['uuid'];
try {
header('Content-Type: application/activity+json');
$posts = $this->getPosts();
$ap = new Activitypub($posts);
echo $ap->getActivity($uuid);
exit;
} catch (\Exception $e) {
header('Content-Type: text/plain; charset=utf-8');
echo 'フェディバースの作成に失敗: '.$e->getMessage();
exit;
}
}
/**
* @param array $params パラメータ配列
* @return void
*/
public function apoutbox(array $params): void {
try {
header('Content-Type: application/activity+json');
$posts = $this->getPosts();
$ap = new Activitypub($posts);
echo $ap->getOutbox();
exit;
} catch (\Exception $e) {
header('Content-Type: text/plain; charset=utf-8');
echo 'フェディバースの作成に失敗: '.$e->getMessage();
exit;
}
}
/**
* @param array $params パラメータ配列
* @return void
*/
public function apfollowers(array $params): void {
try {
header('Content-Type: application/activity+json');
$ap = new Activitypub();
echo $ap->getFollowers();
exit;
} catch (\Exception $e) {
header('Content-Type: text/plain; charset=utf-8');
echo 'フェディバースの作成に失敗: '.$e->getMessage();
exit;
}
}
/**
* @param array $params パラメータ配列
* @return void
*/
public function apfollowing(array $params): void {
try {
header('Content-Type: application/activity+json');
$ap = new Activitypub();
echo $ap->getFollowing();
exit;
} catch (\Exception $e) {
header('Content-Type: text/plain; charset=utf-8');
echo 'フェディバースの作成に失敗: '.$e->getMessage();
exit;
}
}
}