🎭 Stream API Methods Playing Hide and Seek in Go SDK
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
Issue にある getstream.NewClient の初期化と LiveStreamController.StartStream のスニペットから始め、続いてそれらのメソッドと ID 型を現在の getstream-go API と比較します。指定された Go SDK バージョンで報告されている livestream 作成パスがコンパイルできるか、またはサポートされている使用方法が文書化されていれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Hello i am trying to build a project to learn by building a backend clone of Tiktok i am trying to learn
What's Popping? 🎯
Trying to build a sick livestreaming feature but the Stream Go SDK methods are playing hard to get:
lc.streamClient.Callundefinedlc.streamClient.Video()undefined- Type mismatches with user IDs (string vs int)
Expected Behavior 🎪
Should be able to create livestreams like a boss using:
how i initialize the stream Video Livestream API
package config
import (
"os"
"github.com/GetStream/getstream-go"
)
func InitStreamVideo() (*getstream.Stream, error) {
apiKey := os.Getenv("STREAM_API_KEY")
apiSecret := os.Getenv("STREAM_API_SECRET")
client, err := getstream.NewClient(apiKey, apiSecret)
if err != nil {
return nil, err
}
return client, nil
}
The controller than handle these
package controllers
import (
"Tiktok/internal/database"
"Tiktok/internal/models"
"Tiktok/internal/utils"
"context"
"strconv"
"github.com/GetStream/getstream-go"
"github.com/go-playground/validator"
"github.com/gofiber/fiber/v2"
"github.com/google/uuid"
)
type LiveStreamController struct {
db database.Service
validate *validator.Validate
streamClient *getstream.Client
}
type StartStreamRequest struct {
Title string `json:"title" validate:"required"`
Description string `json:"description" validate:"required"`
}
func (lc *LiveStreamController) StartStream(c *fiber.Ctx) error {
ctx := context.Background()
claims := c.Locals("user").(*utils.Claims)
var req StartStreamRequest
if err := c.BodyParser(&req); err != nil {
return utils.SendErrorResponse(c, fiber.StatusBadRequest, "Invalid request", err.Error())
}
userID := strconv.Itoa(claims.UserID)
callID := uuid.New().String()
// Create livestream call
call := lc.streamClient.Video().Call("livestream", callID)
response, err := call.GetOrCreate(ctx, &getstream.GetOrCreateCallRequest{
Data: &getstream.CallRequest{
CreatedByID: getstream.PtrTo(userID),
Members: []getstream.MemberRequest{
{UserID: userID, Role: getstream.PtrTo("host")},
},
Custom: map[string]interface{}{
"title": req.Title,
"description": req.Description,
},
},
})
if err != nil {
return utils.SendErrorResponse(c, fiber.StatusInternalServerError, "Failed to create stream", err.Error())
}
// Save to database
stream := &models.LiveStream{
UserID: claims.UserID,
Title: req.Title,
Description: req.Description,
CallID: callID,
Status: "backstage",
StreamKey: response.StreamKey,
RtmpUrl: response.RtmpUrl,
}
if err := lc.db.CreateLiveStream(ctx, stream); err != nil {
return utils.SendErrorResponse(c, fiber.StatusInternalServerError, "Failed to save stream", err.Error())
}
return c.JSON(fiber.Map{
"status": "success",
"data": stream,
})
}
Current Behavior 🎪
Getting compiler errors faster than a Twitch chat during a fail moment
SDK Version
- GetStream Go SDK: latest
- Go version: latest
- Framework: Fiber
The Dream 🌟
Just trying to make the next big streaming platform here! Help a dev out!
- 主要言語
- Go
- スター
- 8
- フォーク
- 3
- 平均マージ
- 29分
- マージ済み PR(30日)
- 4
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
GetStream/getstream-go のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
GetStream/getstream-go#172 · コメント 9 件 ·
メンテナーはふだん 1 日以内に返信
-
Timestamp struct used in models.go seems incoherent with the used date format対応中かも @skb1129 が 109 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
GetStream/getstream-go#26 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
GetStream/getstream-go の issue をすべて見る
似ている issue
-
needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
WriterSetTimes: the UTIME_NOW check fails when the kernel uses its coarse clock対応中かも @JakeChampion が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
JakeChampion/lang#14224 ·
メンテナーはふだん 1 日以内に返信
-
agent-butler-finding bug
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
jordansmall/spindrift#6391 ·
メンテナーはふだん 1 日以内に返信
-
common.Retry: data race on the shared response/err variables when the request context ends mid-attempt (v65.127.0, v65.128.0)対応中かも @kmohit00 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
oracle/oci-go-sdk#676 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
SAP/crossplane-provider-btp#1175 ·
メンテナーはふだん 1 日以内に返信