Documentation
¶
Index ¶
- Constants
- type Account
- type AccountResponse
- type AddedFriend
- type Client
- func (c *Client) HasUUID(slice []*protos.UUID, target *protos.UUID) bool
- func (c *Client) NewCreateConversationBuilder() *CreateConversationBuilder
- func (c *Client) NewCreateMessageBuilder() *CreateMessageBuilder
- func (c *Client) NewUpdateConversationBuilder(conversation *protos.Conversation) *UpdateConversationBuilder
- func (c *Client) NewUpdateMessageBuilder(messageId int64) *UpdateMessageBuilder
- func (c *Client) RefreshSSOToken() (string, error)
- func (c *Client) SaveSession(path string) error
- func (c *Client) SetProxy(proxy string) error
- type CreateConversationBuilder
- func (c *CreateConversationBuilder) AddParticipant(participant *protos.UUID) *CreateConversationBuilder
- func (c *CreateConversationBuilder) AddParticipants(participants []*protos.UUID) *CreateConversationBuilder
- func (c *CreateConversationBuilder) SetConversationType(conversationType protos.ConversationType) *CreateConversationBuilder
- func (c *CreateConversationBuilder) SetTitle(title string) *CreateConversationBuilder
- type CreateMessageBuilder
- func (c *CreateMessageBuilder) AddConversationDestination(conversation *protos.Conversation) *CreateMessageBuilder
- func (c *CreateMessageBuilder) SetReplyMessage(messageId int64) *CreateMessageBuilder
- func (c *CreateMessageBuilder) SetRetry() *CreateMessageBuilder
- func (c *CreateMessageBuilder) SetSavePolicy(policy protos.ContentEnvelope_SavePolicy) *CreateMessageBuilder
- func (c *CreateMessageBuilder) SetTextMessage(text string) *CreateMessageBuilder
- type Devices
- type ExtraFriendmojiMutableDict
- type ExtraFriendmojiReadOnlyDict
- type FideliusInfo
- type Friend
- type FriendsResponse
- type Messaging
- func (m *Messaging) BatchDeltaSync(deltaSyncRequests []*protos.DeltaSyncRequest) (*protos.BatchDeltaSyncResponse, error)
- func (m *Messaging) BatchRequestFromEntry(conversations []*protos.ConversationEntry) []*protos.DeltaSyncRequest
- func (m *Messaging) BatchResponseToConversationSlice(responses *protos.BatchDeltaSyncResponse) []*protos.Conversation
- func (m *Messaging) CreateConversation(createConversationBuilder *CreateConversationBuilder) (*protos.CreateConversationResponse, error)
- func (m *Messaging) DeltaSync(conversationId *protos.UUID, otherParticipantUserId *protos.UUID) (*protos.DeltaSyncResponse, error)
- func (m *Messaging) GetGroups() (*protos.GetGroupsResponseWrapper, error)
- func (m *Messaging) GetOtherParticipantId(participants []*protos.UUID) *protos.UUID
- func (m *Messaging) QueryConversations(syncToken []byte, requestedPageSize int, ...) (*protos.QueryConversationsResponse, error)
- func (m *Messaging) QueryMessages(conversationId *protos.UUID, requestedCountSize int, currentVersion int64) (*protos.QueryMessagesResponse, error)
- func (m *Messaging) SendContentMessage(messageBuilder *CreateMessageBuilder) (*protos.CreateContentMessageResponse, error)
- func (m *Messaging) SendTypingNotification(conversationId *protos.UUID, lastCreatedMessageId int64) (*protos.SendTypingNotificationResponse, error)
- func (m *Messaging) SyncConversations(syncToken []byte, conversationVersionInfos []*protos.ConversationVersionInfo) (*protos.SyncConversationsResponse, error)
- func (m *Messaging) UpdateContentMessage(updateMessageBuilder *UpdateMessageBuilder) (*protos.UpdateContentMessageResponse, error)
- func (m *Messaging) UpdateConversation(updateConversationBuilder *UpdateConversationBuilder) (*protos.UpdateConversationResponse, error)
- type Proxy
- type Request
- type Session
- type Snapchatter
- type UpdateConversationBuilder
- func (cb *UpdateConversationBuilder) AddParticipants(participants []*protos.UUID) *UpdateConversationBuilder
- func (cb *UpdateConversationBuilder) SetClearFromFeed() *UpdateConversationBuilder
- func (cb *UpdateConversationBuilder) SetConversation(conversation *protos.Conversation) *UpdateConversationBuilder
- func (cb *UpdateConversationBuilder) SetLeaveConversation() *UpdateConversationBuilder
- func (cb *UpdateConversationBuilder) SetNotificationPreference(preference protos.ChatNotificationPreference) *UpdateConversationBuilder
- func (cb *UpdateConversationBuilder) SetRead(lastMessageId int64) *UpdateConversationBuilder
- func (cb *UpdateConversationBuilder) SetRetentionPolicy(policy *protos.RetentionPolicy) *UpdateConversationBuilder
- func (cb *UpdateConversationBuilder) SetTitle(newTitle string, oldTitle string) *UpdateConversationBuilder
- type UpdateMessageBuilder
- func (m *UpdateMessageBuilder) SetConversation(conversation *protos.Conversation) *UpdateMessageBuilder
- func (m *UpdateMessageBuilder) SetErase() *UpdateMessageBuilder
- func (m *UpdateMessageBuilder) SetMessage(messageId int64) *UpdateMessageBuilder
- func (m *UpdateMessageBuilder) SetReaction(intentType int64) *UpdateMessageBuilder
- func (m *UpdateMessageBuilder) SetRead() *UpdateMessageBuilder
- func (m *UpdateMessageBuilder) SetRelease() *UpdateMessageBuilder
- func (m *UpdateMessageBuilder) SetRemoveReaction() *UpdateMessageBuilder
- func (m *UpdateMessageBuilder) SetReplay(currentReplayCount int32) *UpdateMessageBuilder
- func (m *UpdateMessageBuilder) SetSave() *UpdateMessageBuilder
- func (m *UpdateMessageBuilder) SetSaveToCameraRoll() *UpdateMessageBuilder
- func (m *UpdateMessageBuilder) SetScreenRecord() *UpdateMessageBuilder
- func (m *UpdateMessageBuilder) SetScreenshot() *UpdateMessageBuilder
- func (m *UpdateMessageBuilder) SetUnsave() *UpdateMessageBuilder
- type User
- type UserData
- type Users
- type UsersPublicInfoResponse
Constants ¶
const ( Conversation destination = iota Story PhoneNumber )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Account ¶
type Account struct {
// contains filtered or unexported fields
}
func (*Account) Authenticate ¶
func (*Account) Friends ¶
func (a *Account) Friends() (*FriendsResponse, error)
func (*Account) InitializeWebKey ¶
func (a *Account) InitializeWebKey() (*types.FideliusKeys, error)
type AccountResponse ¶
type AccountResponse struct {
Data UserData `json:"data,omitempty"`
}
type AddedFriend ¶
type AddedFriend struct { Name string `json:"name"` UserID string `json:"user_id"` Type int `json:"type"` Display string `json:"display"` Ts int64 `json:"ts"` ReverseTs int `json:"reverse_ts"` Direction string `json:"direction"` Expiration int `json:"expiration"` AddSource string `json:"add_source"` AddSourceType string `json:"add_source_type"` IsIncomingFriendRequestViewed bool `json:"is_incoming_friend_request_viewed"` MutableUsername string `json:"mutable_username"` SnapshotMetadata string `json:"snapshot_metadata"` CameosSharingPolicy int `json:"cameos_sharing_policy"` }
type Client ¶
type Client struct { Request *Request Messaging *Messaging Account *Account Users *Users Session *Session // contains filtered or unexported fields }
func (*Client) NewCreateConversationBuilder ¶
func (c *Client) NewCreateConversationBuilder() *CreateConversationBuilder
THIS WILL AUTOMATICALLY ADD YOU INTO THE PARTICIPANTS SO YOU DO NOT HAVE TO DO THAT YOURSELF
func (*Client) NewCreateMessageBuilder ¶
func (c *Client) NewCreateMessageBuilder() *CreateMessageBuilder
func (*Client) NewUpdateConversationBuilder ¶
func (c *Client) NewUpdateConversationBuilder(conversation *protos.Conversation) *UpdateConversationBuilder
func (*Client) NewUpdateMessageBuilder ¶
func (c *Client) NewUpdateMessageBuilder(messageId int64) *UpdateMessageBuilder
func (*Client) RefreshSSOToken ¶
func (*Client) SaveSession ¶
type CreateConversationBuilder ¶
type CreateConversationBuilder struct {
// contains filtered or unexported fields
}
func (*CreateConversationBuilder) AddParticipant ¶
func (c *CreateConversationBuilder) AddParticipant(participant *protos.UUID) *CreateConversationBuilder
func (*CreateConversationBuilder) AddParticipants ¶
func (c *CreateConversationBuilder) AddParticipants(participants []*protos.UUID) *CreateConversationBuilder
func (*CreateConversationBuilder) SetConversationType ¶
func (c *CreateConversationBuilder) SetConversationType(conversationType protos.ConversationType) *CreateConversationBuilder
func (*CreateConversationBuilder) SetTitle ¶
func (c *CreateConversationBuilder) SetTitle(title string) *CreateConversationBuilder
type CreateMessageBuilder ¶
type CreateMessageBuilder struct {
// contains filtered or unexported fields
}
func (*CreateMessageBuilder) AddConversationDestination ¶
func (c *CreateMessageBuilder) AddConversationDestination(conversation *protos.Conversation) *CreateMessageBuilder
func (*CreateMessageBuilder) SetReplyMessage ¶
func (c *CreateMessageBuilder) SetReplyMessage(messageId int64) *CreateMessageBuilder
messageId = the message id of the message to reply to
func (*CreateMessageBuilder) SetRetry ¶
func (c *CreateMessageBuilder) SetRetry() *CreateMessageBuilder
func (*CreateMessageBuilder) SetSavePolicy ¶
func (c *CreateMessageBuilder) SetSavePolicy(policy protos.ContentEnvelope_SavePolicy) *CreateMessageBuilder
func (*CreateMessageBuilder) SetTextMessage ¶
func (c *CreateMessageBuilder) SetTextMessage(text string) *CreateMessageBuilder
type ExtraFriendmojiMutableDict ¶
type ExtraFriendmojiMutableDict struct{}
type ExtraFriendmojiReadOnlyDict ¶
type ExtraFriendmojiReadOnlyDict struct{}
type FideliusInfo ¶
type FideliusInfo struct {
Devices []Devices `json:"devices"`
}
type Friend ¶
type Friend struct { Username string `json:"name"` ID string `json:"user_id"` Type int `json:"type"` DisplayName string `json:"display"` Birthday string `json:"birthday,omitempty"` Ts int64 `json:"ts,omitempty"` ReverseTs int64 `json:"reverse_ts,omitempty"` Direction string `json:"direction"` CanSeeCustomStories bool `json:"can_see_custom_stories"` Expiration int `json:"expiration"` FriendmojiString string `json:"friendmoji_string"` Friendmojis []any `json:"friendmojis"` SnapStreakCount int `json:"snap_streak_count"` FideliusInfo FideliusInfo `json:"fidelius_info,omitempty"` IsPopular bool `json:"is_popular"` IsStoryMuted bool `json:"is_story_muted"` MutableUsername string `json:"mutable_username"` IsCameosSharingSupported bool `json:"is_cameos_sharing_supported,omitempty"` CameosSharingPolicy int `json:"cameos_sharing_policy"` PlusBadgeVisibility int `json:"plus_badge_visibility"` BitmojiAvatarID string `json:"bitmoji_avatar_id,omitempty"` BitmojiSelfieID string `json:"bitmoji_selfie_id,omitempty"` BitmojiSceneID string `json:"bitmoji_scene_id,omitempty"` BitmojiBackgroundID string `json:"bitmoji_background_id,omitempty"` IsBitmojiFriendmojiSharingSupported bool `json:"is_bitmoji_friendmoji_sharing_supported,omitempty"` IgnoredLink bool `json:"ignored_link,omitempty"` }
type FriendsResponse ¶
type FriendsResponse struct { Friends []Friend `json:"friends"` FriendsSyncToken string `json:"friends_sync_token"` FriendsSyncType string `json:"friends_sync_type"` AddedFriends []AddedFriend `json:"added_friends"` Bests []any `json:"bests"` ExtraFriendmojiMutableDict ExtraFriendmojiMutableDict `json:"extra_friendmoji_mutable_dict"` ExtraFriendmojiReadOnlyDict ExtraFriendmojiReadOnlyDict `json:"extra_friendmoji_read_only_dict"` AddedFriendsSyncToken string `json:"added_friends_sync_token"` AddedFriendsSyncType string `json:"added_friends_sync_type"` BestsUserIds []any `json:"bests_user_ids"` IsResponseWithPartialColumns bool `json:"is_response_with_partial_columns"` InvitedUsers []any `json:"invited_users"` }
type Messaging ¶
type Messaging struct {
// contains filtered or unexported fields
}
func (*Messaging) BatchDeltaSync ¶
func (m *Messaging) BatchDeltaSync(deltaSyncRequests []*protos.DeltaSyncRequest) (*protos.BatchDeltaSyncResponse, error)
func (*Messaging) BatchRequestFromEntry ¶
func (m *Messaging) BatchRequestFromEntry(conversations []*protos.ConversationEntry) []*protos.DeltaSyncRequest
func (*Messaging) BatchResponseToConversationSlice ¶
func (m *Messaging) BatchResponseToConversationSlice(responses *protos.BatchDeltaSyncResponse) []*protos.Conversation
func (*Messaging) CreateConversation ¶
func (m *Messaging) CreateConversation(createConversationBuilder *CreateConversationBuilder) (*protos.CreateConversationResponse, error)
func (*Messaging) DeltaSync ¶
func (m *Messaging) DeltaSync(conversationId *protos.UUID, otherParticipantUserId *protos.UUID) (*protos.DeltaSyncResponse, error)
only thing needed is conversationId for now, so just pass that as nil. if you are having trouble, try passing in otherParticipantId aswell.
func (*Messaging) GetGroups ¶
func (m *Messaging) GetGroups() (*protos.GetGroupsResponseWrapper, error)
func (*Messaging) GetOtherParticipantId ¶
func (*Messaging) QueryConversations ¶
func (m *Messaging) QueryConversations(syncToken []byte, requestedPageSize int, paginationInfo *protos.QueryConversationsRequest_PaginationInfo) (*protos.QueryConversationsResponse, error)
the sync token you got earlier already contains all the information needed to query the conversation im sure this endpoint will eventually support batch requests aswell since the response does paginationInfo is not required, just pass nil if you don't want to send it
func (*Messaging) QueryMessages ¶
func (m *Messaging) QueryMessages(conversationId *protos.UUID, requestedCountSize int, currentVersion int64) (*protos.QueryMessagesResponse, error)
currentVersion is the cursor from where to query messages from
func (*Messaging) SendContentMessage ¶
func (m *Messaging) SendContentMessage(messageBuilder *CreateMessageBuilder) (*protos.CreateContentMessageResponse, error)
func (*Messaging) SendTypingNotification ¶
func (*Messaging) SyncConversations ¶
func (m *Messaging) SyncConversations(syncToken []byte, conversationVersionInfos []*protos.ConversationVersionInfo) (*protos.SyncConversationsResponse, error)
if it's the first SyncConversations request, pass nil as both syncToken & conversationVersionInfos.
func (*Messaging) UpdateContentMessage ¶
func (m *Messaging) UpdateContentMessage(updateMessageBuilder *UpdateMessageBuilder) (*protos.UpdateContentMessageResponse, error)
func (*Messaging) UpdateConversation ¶
func (m *Messaging) UpdateConversation(updateConversationBuilder *UpdateConversationBuilder) (*protos.UpdateConversationResponse, error)
type Session ¶
type Session struct { CurrentUser *User `json:"currentUser,omitempty"` FideliusKeys *types.FideliusKeys `json:"fideliusKeys,omitempty"` SnapCookies *types.SnapCookies `json:"snapCookies,omitempty"` SnapTokens *types.SnapTokens `json:"snapTokens,omitempty"` }
func NewSessionFromCookies ¶
func (*Session) GetCurrentUser ¶
type Snapchatter ¶
type Snapchatter struct { ID string `json:"user_id"` Username string `json:"username"` DisplayName string `json:"display_name"` BitmojiAvatarID string `json:"bitmoji_avatar_id"` BitmojiSelfieID string `json:"bitmoji_selfie_id"` MutableUsername string `json:"mutable_username"` BitmojiBackgroundID string `json:"bitmoji_background_id,omitempty"` }
type UpdateConversationBuilder ¶
type UpdateConversationBuilder struct {
// contains filtered or unexported fields
}
func (*UpdateConversationBuilder) AddParticipants ¶
func (cb *UpdateConversationBuilder) AddParticipants(participants []*protos.UUID) *UpdateConversationBuilder
func (*UpdateConversationBuilder) SetClearFromFeed ¶
func (cb *UpdateConversationBuilder) SetClearFromFeed() *UpdateConversationBuilder
func (*UpdateConversationBuilder) SetConversation ¶
func (cb *UpdateConversationBuilder) SetConversation(conversation *protos.Conversation) *UpdateConversationBuilder
for reuse
func (*UpdateConversationBuilder) SetLeaveConversation ¶
func (cb *UpdateConversationBuilder) SetLeaveConversation() *UpdateConversationBuilder
func (*UpdateConversationBuilder) SetNotificationPreference ¶
func (cb *UpdateConversationBuilder) SetNotificationPreference(preference protos.ChatNotificationPreference) *UpdateConversationBuilder
func (*UpdateConversationBuilder) SetRead ¶
func (cb *UpdateConversationBuilder) SetRead(lastMessageId int64) *UpdateConversationBuilder
func (*UpdateConversationBuilder) SetRetentionPolicy ¶
func (cb *UpdateConversationBuilder) SetRetentionPolicy(policy *protos.RetentionPolicy) *UpdateConversationBuilder
func (*UpdateConversationBuilder) SetTitle ¶
func (cb *UpdateConversationBuilder) SetTitle(newTitle string, oldTitle string) *UpdateConversationBuilder
type UpdateMessageBuilder ¶
type UpdateMessageBuilder struct {
// contains filtered or unexported fields
}
func (*UpdateMessageBuilder) SetConversation ¶
func (m *UpdateMessageBuilder) SetConversation(conversation *protos.Conversation) *UpdateMessageBuilder
func (*UpdateMessageBuilder) SetErase ¶
func (m *UpdateMessageBuilder) SetErase() *UpdateMessageBuilder
delete message
func (*UpdateMessageBuilder) SetMessage ¶
func (m *UpdateMessageBuilder) SetMessage(messageId int64) *UpdateMessageBuilder
func (*UpdateMessageBuilder) SetReaction ¶
func (m *UpdateMessageBuilder) SetReaction(intentType int64) *UpdateMessageBuilder
func (*UpdateMessageBuilder) SetRead ¶
func (m *UpdateMessageBuilder) SetRead() *UpdateMessageBuilder
func (*UpdateMessageBuilder) SetRelease ¶
func (m *UpdateMessageBuilder) SetRelease() *UpdateMessageBuilder
func (*UpdateMessageBuilder) SetRemoveReaction ¶
func (m *UpdateMessageBuilder) SetRemoveReaction() *UpdateMessageBuilder
func (*UpdateMessageBuilder) SetReplay ¶
func (m *UpdateMessageBuilder) SetReplay(currentReplayCount int32) *UpdateMessageBuilder
func (*UpdateMessageBuilder) SetSave ¶
func (m *UpdateMessageBuilder) SetSave() *UpdateMessageBuilder
func (*UpdateMessageBuilder) SetSaveToCameraRoll ¶
func (m *UpdateMessageBuilder) SetSaveToCameraRoll() *UpdateMessageBuilder
func (*UpdateMessageBuilder) SetScreenRecord ¶
func (m *UpdateMessageBuilder) SetScreenRecord() *UpdateMessageBuilder
func (*UpdateMessageBuilder) SetScreenshot ¶
func (m *UpdateMessageBuilder) SetScreenshot() *UpdateMessageBuilder
func (*UpdateMessageBuilder) SetUnsave ¶
func (m *UpdateMessageBuilder) SetUnsave() *UpdateMessageBuilder
type User ¶
type User struct { ID string `json:"id"` EncodedUserId *protos.UUID `json:"encodedUserId,omitempty"` BitmojiAvatarID string `json:"bitmojiAvatarId"` BitmojiSelfieID string `json:"bitmojiSelfieId"` BitmojiBackgroundID string `json:"bitmojiBackgroundId"` BitmojiSceneID string `json:"bitmojiSceneId"` IsEmployee bool `json:"isEmployee"` Username string `json:"username"` DisplayName string `json:"displayName"` SnapPrivacy int `json:"snapPrivacy"` HasUserSeenDWeb bool `json:"hasUserSeenDWeb"` HasUserAcceptedMerlinJIT bool `json:"hasUserAcceptedMerlinJIT"` }
type Users ¶
type Users struct {
// contains filtered or unexported fields
}
func (*Users) GetBitmojiImage ¶
func (*Users) GetBitmojiURL ¶
scale is a number, 0-2 but in string for the url formatting
func (*Users) GetPublicInfo ¶
func (u *Users) GetPublicInfo(userIds []string) ([]Snapchatter, error)
type UsersPublicInfoResponse ¶
type UsersPublicInfoResponse struct {
Snapchatters []Snapchatter `json:"snapchatters"`
}