SocialService
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
SocialService は、Roblox プラットフォーム上で作成された関係に影響を与えるソーシャル機能を簡素化します。主な使用は、招待プロンプトと電話帳をプレイヤーに表示し、それらがそれぞれPromptGameInvite()とPromptPhoneBook()を通じて友達に招待リクエストを送信できるようにすることです。そのようなリクエストが行われたときに、シグナルを利用できます。
概要
方法
イベント
プレイヤーの呼び出し状態が変更されたときに発火します。
プレイヤーが招待プロンプトを閉じるときに発火します。
プレイヤーが電話帳のプロンプトを閉じると発火します。
コールバック
電話帳からの呼び出しが行われたときのリコール。
プロパティ
方法
HideSelfView
呼び出されるプレイヤーの自己ビューを非表示にします。このメソッドが自己ビューがすでに非表示で呼ばれているときに呼ばれると、何もしません。
戻り値
PromptGameInvite
PromptGameInvite() は、現在のエクスペリエンスに友達を招待できるように、ローカルプレイヤーに招待プロンプトを表示します。このメソッドを呼び出す前に、CanSendGameInviteAsync() を使用して、プレイヤーが招待を送信できるかどうかを判断する必要があります。この能力は、プラットフォームやプレイヤーによって異なる可能性があるためです。
プレイヤーへの招待プロンプトの実装、招待プロンプトのカスタマイズ、およびランチデータの使用に関する詳細は、プレイヤーへの招待プロンプトを参照してください。
パラメータ
オプションの ExperienceInviteOptions オブジェクトで、プロンプトをカスタマイズ。
戻り値
コードサンプル
The following code sample uses CanSendGameInviteAsync() to confirm whether the local Player can send an invite. If true, it then prompts the invite using PromptGameInvite().
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Function to check whether the player can send an invite
local function canSendGameInvite(sendingPlayer)
local success, canSend = pcall(function()
return SocialService:CanSendGameInviteAsync(sendingPlayer)
end)
return success and canSend
end
local canInvite = canSendGameInvite(player)
if canInvite then
SocialService:PromptGameInvite(player)
end
PromptPhoneBook
指定された Player に電話帳を使って確認するプレイヤーが誰かを呼ぶことを選択すると、CallInviteStateChanged イベントが発動します。電話帳を表示できる能力はプレイヤーによって異なるため、PromptPhoneBook() を呼び出す前に CanSendCallInviteAsync() を使用する必要があります。
プレイヤーが電話帳を開く資格がない場合、エラーダイアログが表示されます。
このメソッドのサンプル実装は、Roblox Connect を参照してください。
パラメータ
電話帳で質問するプレイヤー。
様々な電話帳の「エントリポイント」や同様のものを区別するのに役立つ文字列。たとえば、呼び出しプレイヤーのキャラクターが現在どのエクスペリエンス領域にいるかを定義する文字列をパスすることができます。
戻り値
コードサンプル
The following code sample, placed within a child LocalScript of a GuiButton, uses CanSendCallInviteAsync() to confirm that the player can make a call. If so, it connects PromptPhoneBook() to the button's Activated event.
local Players = game:GetService("Players")
local SocialService = game:GetService("SocialService")
local player = Players.LocalPlayer
local button = script.Parent
button.Visible = false
-- Function to check whether the player can send a call invite
local function canSendCallingInvite(sendingPlayer)
local success, canSend = pcall(function()
return SocialService:CanSendCallInviteAsync(sendingPlayer)
end)
return success and canSend
end
local canCall = canSendCallingInvite(player)
if canCall then
button.Visible = true
button.Activated:Connect(function()
SocialService:PromptPhoneBook(player, "")
end)
end
ShowSelfView
呼び出されたプレイヤーの自己ビューを表示します。このメソッドが自己ビューがすでに表示されているときに呼び出された場合、何も行わないことがあります。
パラメータ
自分のビューを配置する位置。
戻り値
CanSendCallInviteAsync
指定された Player が友達に呼び出しの招待を送信できる場合、true を返します。電話帳を開く能力はプレイヤーによって異なるため、PromptPhoneBook() を呼び出す前に常にこのメソッドの結果を使用する必要があります。
このメソッドのサンプル実装は、Roblox Connect を参照してください。
パラメータ
戻り値
指定されたプレイヤーが呼び出しを送信できるかどうか。
コードサンプル
The following code sample, placed within a child LocalScript of a GuiButton, uses CanSendCallInviteAsync() to confirm that the player can make a call. If so, it connects PromptPhoneBook() to the button's Activated event.
local Players = game:GetService("Players")
local SocialService = game:GetService("SocialService")
local player = Players.LocalPlayer
local button = script.Parent
button.Visible = false
-- Function to check whether the player can send a call invite
local function canSendCallingInvite(sendingPlayer)
local success, canSend = pcall(function()
return SocialService:CanSendCallInviteAsync(sendingPlayer)
end)
return success and canSend
end
local canCall = canSendCallingInvite(player)
if canCall then
button.Visible = true
button.Activated:Connect(function()
SocialService:PromptPhoneBook(player, "")
end)
end
CanSendGameInviteAsync
CanSendGameInviteAsync() は、指定された Player が現在のエクスペリエンスに他のプレイヤーを招待できる場合、true を返します。プレイヤーを招待できる能力は、プラットフォームやプレイヤーによって異なるため、PromptGameInvite() を呼び出す前に、このメソッドの結果を常に使用する必要があります。
プレイヤーの招待プロンプトの実装、プロンプトと通知のカスタマイズ、およびランチデータの使用に関する詳細は、プレイヤー招待プロンプトを参照してください。
パラメータ
オプションの Player.UserId ポテンシャル受信者 **** 、送信者が特定の受信者を招待できるかどうかをチェックするために使用されます。
戻り値
指定されたプレイヤーが招待を送信できるかどうか。
コードサンプル
The following code sample uses CanSendGameInviteAsync() to confirm whether the local Player can send an invite. If true, it then prompts the invite using PromptGameInvite().
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Function to check whether the player can send an invite
local function canSendGameInvite(sendingPlayer)
local success, canSend = pcall(function()
return SocialService:CanSendGameInviteAsync(sendingPlayer)
end)
return success and canSend
end
local canInvite = canSendGameInvite(player)
if canInvite then
SocialService:PromptGameInvite(player)
end
イベント
CallInviteStateChanged
このイベントは、プレイヤーの呼び出し状態が変更されたときに発動します。
パラメータ
新しい呼び出し招待状態。
コードサンプル
local SocialService = game:GetService("SocialService")
local button = script.Parent
local isPhonebookOpen = false
SocialService.CallInviteStateChanged:Connect(function(_, inviteState)
local isCalling = inviteState == Enum.InviteState.Placed
if isCalling or isPhonebookOpen then
button.Visible = false
else
button.Visible = true
end
end)
GameInvitePromptClosed
このイベントは、プレイヤーが招待プロンプトを閉じると発動します。
パラメータ
コールバック
OnCallInviteInvoked
電話帳からの呼び出しを処理するためのコールバック。tag パラメータは、PromptPhoneBook() で説明されているように、異なる「エントリポイント」や同様のものを区別するために使用できます。1つのコールバックのみを設定する定できます。
パラメータ
様々な電話帳のエントリポイントを区別するのに役立つ文字列。
呼び出しに関与するすべてのプレイヤーを含む配列。呼び出し者は常に配列の最初のプレイヤーになります。
戻り値
値が PlaceId および ReservedServerAccessCode のキーを含むテーブルは、それぞれ DataModel.PlaceId および TeleportService:ReserveServer() によって返されたサーバーアクセスコードです。
コードサンプル
local SocialService = game:GetService("SocialService")
local TeleportService = game:GetService("TeleportService")
SocialService.OnCallInviteInvoked = function()
local placeId = 0123456789 -- This is the place ID of the desired place to drop call participants into
local accessCode = TeleportService:ReserveServer(placeId)
return { ReservedServerAccessCode = accessCode, PlaceId = placeId }
end