Laravel getStream - 如何关注或添加 activity 公司(非用户)
Laravel getStream - How to follow or add activity to a Company (non user)
我正在创建的应用程序需要关注公司,而不是用户。并让公司有自己的活动。 Laravel getStream 中是如何配置的。似乎提要仅适用于用户类型。
timelineFeed = FeedManager::getNewsFeed($user->id)['timeline'];
$aggregatedTimelineFeed = FeedManager::getNewsFeed($user->id)['timeline_aggregated'];
我的样品模型是这样的:
namespace App;
use Illuminate\Database\Eloquent\Model;
class CompanyPost extends Model
{
use \GetStream\StreamLaravel\Eloquent\ActivityTrait;
public function company()
{
return $this->belongsTo('App\Company', 'company_id', 'id');
}
public function activityVerb()
{
return 'company_post';
}
public function activityActorMethodName()
{
return 'company';
}
}
但我注意到提要仍然保存在用户活动而不是公司活动上。
在此先感谢大家。
我们的 stream-laravel 项目有一些关于如何更改模型的文档
class Pin extends Eloquent {
use GetStream\StreamLaravel\Eloquent\ActivityTrait;
public function author()
{
return $this->belongsTo('Author');
}
public function activityActorMethodName()
{
return 'author';
}
就让志愿者关注公司和用户而言,我们在主要 README 中有一些文档。
(编辑以删除我错误的 github 引用)
Ian 似乎在他 link 到 Github 问题中把你和我混淆了,这引起了我对这个 post 的注意。
这仍然出现在用户供稿中的原因是,这不是一个可配置的选项,至少在个案(或模型)层面上是这样。您可以覆盖 Stream Laravel 在主要配置中用作 "user feed" 的内容,但据我所知,除非您构建使用 Stream-PHP 库实现自己的功能,并避免使用 StreamLaravel Activity 特性。
您可以在此处查看从第 73 行开始的 StreamLaravelManager.php 创建 activity 时发生的情况。
public function activityCreated($instance)
{
$activity = $instance->createActivity();
$feed = $this->getFeed($this->userFeed, $instance->activityActorId());
$feed->addActivity($activity);
}
不幸的是,“$this->userFeed”最终是从配置文件中提取出来的,我认为没有办法覆盖它。
就我个人而言,我在创建 "like" 功能时 运行 参与其中。我真的不希望人们必须在他们的时间表上看到每个人 "likes" 的内容,因为其中大部分都是无关紧要的,而且很快就会变得混乱,所以我最终甚至没有创建 "like" [=31] =].相反,只有当有人喜欢他们的东西时,我才会将它添加到用户通知提要中。当然,这可能不是每个人都希望以这种方式处理的,但我注意到你的屏幕截图中有 "like" activity,所以我想我会提到它。
祝你的应用程序好运!
抱歉回复晚了。我已经设法关注一家公司创建
饲料组:
公司持平
并使用下面的示例代码:
$feed = FeedManager::getClient()->feed('timeline', $user->id);
$feed->followFeed('company', $companyId);
取消关注:
$feed->unfollowFeed('company', $companyId);
添加activity:
$companyFeed = FeedManager::getClient()->feed('company', $company->id);
$companyFeed->addActivity([
"actor" => "App\Company:{$company->id}",
"verb" => "company_post",
"object" => "App\CompanyPost:{$post->id}",
"foreign_id" => "App\CompanyPost:{$post->id}"
]);
我正在创建的应用程序需要关注公司,而不是用户。并让公司有自己的活动。 Laravel getStream 中是如何配置的。似乎提要仅适用于用户类型。
timelineFeed = FeedManager::getNewsFeed($user->id)['timeline'];
$aggregatedTimelineFeed = FeedManager::getNewsFeed($user->id)['timeline_aggregated'];
我的样品模型是这样的:
namespace App;
use Illuminate\Database\Eloquent\Model;
class CompanyPost extends Model
{
use \GetStream\StreamLaravel\Eloquent\ActivityTrait;
public function company()
{
return $this->belongsTo('App\Company', 'company_id', 'id');
}
public function activityVerb()
{
return 'company_post';
}
public function activityActorMethodName()
{
return 'company';
}
}
但我注意到提要仍然保存在用户活动而不是公司活动上。
在此先感谢大家。
我们的 stream-laravel 项目有一些关于如何更改模型的文档
class Pin extends Eloquent {
use GetStream\StreamLaravel\Eloquent\ActivityTrait;
public function author()
{
return $this->belongsTo('Author');
}
public function activityActorMethodName()
{
return 'author';
}
就让志愿者关注公司和用户而言,我们在主要 README 中有一些文档。
(编辑以删除我错误的 github 引用)
Ian 似乎在他 link 到 Github 问题中把你和我混淆了,这引起了我对这个 post 的注意。
这仍然出现在用户供稿中的原因是,这不是一个可配置的选项,至少在个案(或模型)层面上是这样。您可以覆盖 Stream Laravel 在主要配置中用作 "user feed" 的内容,但据我所知,除非您构建使用 Stream-PHP 库实现自己的功能,并避免使用 StreamLaravel Activity 特性。
您可以在此处查看从第 73 行开始的 StreamLaravelManager.php 创建 activity 时发生的情况。
public function activityCreated($instance)
{
$activity = $instance->createActivity();
$feed = $this->getFeed($this->userFeed, $instance->activityActorId());
$feed->addActivity($activity);
}
不幸的是,“$this->userFeed”最终是从配置文件中提取出来的,我认为没有办法覆盖它。
就我个人而言,我在创建 "like" 功能时 运行 参与其中。我真的不希望人们必须在他们的时间表上看到每个人 "likes" 的内容,因为其中大部分都是无关紧要的,而且很快就会变得混乱,所以我最终甚至没有创建 "like" [=31] =].相反,只有当有人喜欢他们的东西时,我才会将它添加到用户通知提要中。当然,这可能不是每个人都希望以这种方式处理的,但我注意到你的屏幕截图中有 "like" activity,所以我想我会提到它。
祝你的应用程序好运!
抱歉回复晚了。我已经设法关注一家公司创建 饲料组: 公司持平
并使用下面的示例代码:
$feed = FeedManager::getClient()->feed('timeline', $user->id);
$feed->followFeed('company', $companyId);
取消关注:
$feed->unfollowFeed('company', $companyId);
添加activity:
$companyFeed = FeedManager::getClient()->feed('company', $company->id);
$companyFeed->addActivity([
"actor" => "App\Company:{$company->id}",
"verb" => "company_post",
"object" => "App\CompanyPost:{$post->id}",
"foreign_id" => "App\CompanyPost:{$post->id}"
]);