Documentation ¶
Overview ¶
Package playintegrity provides access to the Google Play Integrity API.
For product documentation, see: https://developer.android.com/google/play/integrity
Creating a client ¶
Usage example:
import "google.golang.org/api/playintegrity/v1" ... ctx := context.Background() playintegrityService, err := playintegrity.NewService(ctx)
In this example, Google Application Default Credentials are used for authentication.
For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
Other authentication options ¶
To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
playintegrityService, err := playintegrity.NewService(ctx, option.WithAPIKey("AIza..."))
To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
config := &oauth2.Config{...} // ... token, err := config.Exchange(ctx, ...) playintegrityService, err := playintegrity.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
See https://godoc.org/google.golang.org/api/option/ for details on options.
Index ¶
- Constants
- type AccountActivity
- type AccountDetails
- type AccountRiskVerdict
- type AppIntegrity
- type DecodeIntegrityTokenRequest
- type DecodeIntegrityTokenResponse
- type DeviceIntegrity
- type RequestDetails
- type Service
- type TestingDetails
- type TokenPayloadExternal
- type V1DecodeIntegrityTokenCall
- func (c *V1DecodeIntegrityTokenCall) Context(ctx context.Context) *V1DecodeIntegrityTokenCall
- func (c *V1DecodeIntegrityTokenCall) Do(opts ...googleapi.CallOption) (*DecodeIntegrityTokenResponse, error)
- func (c *V1DecodeIntegrityTokenCall) Fields(s ...googleapi.Field) *V1DecodeIntegrityTokenCall
- func (c *V1DecodeIntegrityTokenCall) Header() http.Header
- type V1Service
Constants ¶
const (
// Private Service: https://www.googleapis.com/auth/playintegrity
PlayintegrityScope = "https://www.googleapis.com/auth/playintegrity"
)
OAuth2 scopes used by this API.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccountActivity ¶ added in v0.100.0
type AccountActivity struct { // ActivityLevel: Required. Indicates the activity level of the account. // // Possible values: // "ACTIVITY_LEVEL_UNSPECIFIED" - Activity level has not been set. // "UNEVALUATED" - Account activity level is not evaluated because one // of the prerequisite conditions is not met (e.g., device is not // trusted, the user does not have Play app license) // "UNUSUAL" - Google Play store activity is unusual for at least one // of the user accounts on the device. Google Play recommends checking // that this is a real user. // "UNKNOWN" - Google Play does not have sufficient activity for the // user account on the device. The account may be new, or it may lack // activity on Google Play. // "TYPICAL_BASIC" - Google Play store activity is typical for the // user account or accounts on the device. // "TYPICAL_STRONG" - Google Play store activity is typical for the // user account or accounts on the device, with harder to replicate // signals. ActivityLevel string `json:"activityLevel,omitempty"` // ForceSendFields is a list of field names (e.g. "ActivityLevel") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ActivityLevel") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` }
AccountActivity: Contains a signal helping apps differentiating between likely genuine users and likely non-genuine traffic (such as accounts being used for fraud, accounts used by automated traffic, or accounts used in device farms) based on the presence and volume of Play store activity.
func (*AccountActivity) MarshalJSON ¶ added in v0.100.0
func (s *AccountActivity) MarshalJSON() ([]byte, error)
type AccountDetails ¶
type AccountDetails struct { // AccountActivity: Details about the account activity for the user in // the scope. AccountActivity *AccountActivity `json:"accountActivity,omitempty"` // AccountRiskVerdict: Details about the account risk for the user in // the scope. This feature is available only to selected developers. AccountRiskVerdict *AccountRiskVerdict `json:"accountRiskVerdict,omitempty"` // AppLicensingVerdict: Required. Details about the licensing status of // the user for the app in the scope. // // Possible values: // "UNKNOWN" - Play does not have sufficient information to evaluate // licensing details // "LICENSED" - The app and certificate match the versions distributed // by Play. // "UNLICENSED" - The certificate or package name does not match // Google Play records. // "UNEVALUATED" - Licensing details were not evaluated since a // necessary requirement was missed. For example DeviceIntegrity did not // meet the minimum bar or the application was not a known Play version. AppLicensingVerdict string `json:"appLicensingVerdict,omitempty"` // ForceSendFields is a list of field names (e.g. "AccountActivity") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AccountActivity") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` }
AccountDetails: Contains the account information such as the licensing status for the user in the scope.
func (*AccountDetails) MarshalJSON ¶
func (s *AccountDetails) MarshalJSON() ([]byte, error)
type AccountRiskVerdict ¶ added in v0.94.0
type AccountRiskVerdict struct { // Risk: Required. Indicates the account risk level of the current user // session. // // Possible values: // "RISK_UNSPECIFIED" - Risk has not been set. // "UNEVALUATED" - The account risk is not evaluated, because the // device is not trusted or the user does not have a Play app license. // "HIGHER" - Play thinks that at least one of the user accounts on // the device has some unusual store engagement behavior that could be // risky. // "UNKNOWN" - Play does not have sufficient information to assess the // risk. The account may be new, or it may lack activity on the Play // Store. // "LOWER" - Play thinks the user could be genuine, since there is // some store engagement. However, some signals to support the trust // level are missing. // "LOWEST" - Play thinks the user is more likely to be genuine due to // harder to replicate store engagement signals. Risk string `json:"risk,omitempty"` // RiskLevel: Required. Indicates the account risk level of the current // user session. // // Possible values: // "RISK_LEVEL_UNSPECIFIED" - Risk level has not been set. // "RISK_LEVEL_UNEVALUATED" - The account risk is not evaluated, // because the device is not trusted or the user does not have a Play // app license. // "RISK_LEVEL_RISK" - Play thinks that at least one of the user // accounts on the device has some unusual store engagement behavior // that could be risky. // "RISK_LEVEL_UNKNOWN" - Play does not have sufficient information to // assess the risk. The account may be new, or it may lack activity on // the Play Store. // "RISK_LEVEL_LOW_RISK" - Play thinks the user could be genuine, // since there is some store engagement. However, some signals to // support the trust level are missing. // "RISK_LEVEL_LOWEST_RISK" - Play thinks the user is more likely to // be genuine due to harder to replicate store engagement signals. RiskLevel string `json:"riskLevel,omitempty"` // ForceSendFields is a list of field names (e.g. "Risk") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Risk") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` }
AccountRiskVerdict: Contains information about account risk that indicates if the current user session seems low risk, unknown, or risky before you allow important actions to proceed.
func (*AccountRiskVerdict) MarshalJSON ¶ added in v0.94.0
func (s *AccountRiskVerdict) MarshalJSON() ([]byte, error)
type AppIntegrity ¶
type AppIntegrity struct { // AppRecognitionVerdict: Required. Details about the app recognition // verdict // // Possible values: // "UNKNOWN" - Play does not have sufficient information to evaluate // app integrity // "PLAY_RECOGNIZED" - The app and certificate match the versions // distributed by Play. // "UNRECOGNIZED_VERSION" - The certificate or package name does not // match Google Play records. // "UNEVALUATED" - Application integrity was not evaluated since a // necessary requirement was missed. For example DeviceIntegrity did not // meet the minimum bar. AppRecognitionVerdict string `json:"appRecognitionVerdict,omitempty"` // CertificateSha256Digest: The SHA256 hash of the requesting app's // signing certificates (base64 web-safe encoded). Set iff // app_recognition_verdict != UNEVALUATED. CertificateSha256Digest []string `json:"certificateSha256Digest,omitempty"` // PackageName: Package name of the application under attestation. Set // iff app_recognition_verdict != UNEVALUATED. PackageName string `json:"packageName,omitempty"` // VersionCode: Version code of the application. Set iff // app_recognition_verdict != UNEVALUATED. VersionCode int64 `json:"versionCode,omitempty,string"` // ForceSendFields is a list of field names (e.g. // "AppRecognitionVerdict") to unconditionally include in API requests. // By default, fields with empty or default values are omitted from API // requests. However, any non-pointer, non-interface field appearing in // ForceSendFields will be sent to the server regardless of whether the // field is empty or not. This may be used to include empty fields in // Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AppRecognitionVerdict") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` }
AppIntegrity: Contains the application integrity information.
func (*AppIntegrity) MarshalJSON ¶
func (s *AppIntegrity) MarshalJSON() ([]byte, error)
type DecodeIntegrityTokenRequest ¶
type DecodeIntegrityTokenRequest struct { // IntegrityToken: Encoded integrity token. IntegrityToken string `json:"integrityToken,omitempty"` // ForceSendFields is a list of field names (e.g. "IntegrityToken") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "IntegrityToken") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` }
DecodeIntegrityTokenRequest: Request to decode the integrity token.
func (*DecodeIntegrityTokenRequest) MarshalJSON ¶
func (s *DecodeIntegrityTokenRequest) MarshalJSON() ([]byte, error)
type DecodeIntegrityTokenResponse ¶
type DecodeIntegrityTokenResponse struct { // TokenPayloadExternal: Plain token payload generated from the decoded // integrity token. TokenPayloadExternal *TokenPayloadExternal `json:"tokenPayloadExternal,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. // "TokenPayloadExternal") to unconditionally include in API requests. // By default, fields with empty or default values are omitted from API // requests. However, any non-pointer, non-interface field appearing in // ForceSendFields will be sent to the server regardless of whether the // field is empty or not. This may be used to include empty fields in // Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "TokenPayloadExternal") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` }
DecodeIntegrityTokenResponse: Response containing the decoded integrity payload.
func (*DecodeIntegrityTokenResponse) MarshalJSON ¶
func (s *DecodeIntegrityTokenResponse) MarshalJSON() ([]byte, error)
type DeviceIntegrity ¶
type DeviceIntegrity struct { // DeviceRecognitionVerdict: Details about the integrity of the device // the app is running on // // Possible values: // "UNKNOWN" - Play does not have sufficient information to evaluate // device integrity // "MEETS_BASIC_INTEGRITY" - App is running on a device that passes // basic system integrity checks, but may not meet Android platform // compatibility requirements and may not be approved to run Google Play // services. // "MEETS_DEVICE_INTEGRITY" - App is running on GMS Android device // with Google Play services. // "MEETS_STRONG_INTEGRITY" - App is running on GMS Android device // with Google Play services and has a strong guarantee of system // integrity such as a hardware-backed keystore. // "MEETS_VIRTUAL_INTEGRITY" - App is running on an Android emulator // with Google Play services which meets core Android compatibility // requirements. DeviceRecognitionVerdict []string `json:"deviceRecognitionVerdict,omitempty"` // ForceSendFields is a list of field names (e.g. // "DeviceRecognitionVerdict") to unconditionally include in API // requests. By default, fields with empty or default values are omitted // from API requests. However, any non-pointer, non-interface field // appearing in ForceSendFields will be sent to the server regardless of // whether the field is empty or not. This may be used to include empty // fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DeviceRecognitionVerdict") // to include in API requests with the JSON null value. By default, // fields with empty values are omitted from API requests. However, any // field with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` }
DeviceIntegrity: Contains the device attestation information.
func (*DeviceIntegrity) MarshalJSON ¶
func (s *DeviceIntegrity) MarshalJSON() ([]byte, error)
type RequestDetails ¶
type RequestDetails struct { // Nonce: Required. Nonce that was provided in the request (which is // base64 web-safe no-wrap). Nonce string `json:"nonce,omitempty"` // RequestPackageName: Required. Application package name this // attestation was requested for. Note: This field makes no guarantees // or promises on the caller integrity. For details on application // integrity, check application_integrity. RequestPackageName string `json:"requestPackageName,omitempty"` // TimestampMillis: Required. Timestamp, in milliseconds, of the // integrity application request. TimestampMillis int64 `json:"timestampMillis,omitempty,string"` // ForceSendFields is a list of field names (e.g. "Nonce") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Nonce") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` }
RequestDetails: Contains the integrity request information.
func (*RequestDetails) MarshalJSON ¶
func (s *RequestDetails) MarshalJSON() ([]byte, error)
type Service ¶
type Service struct { BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment V1 *V1Service // contains filtered or unexported fields }
func New
deprecated
New creates a new Service. It uses the provided http.Client for requests.
Deprecated: please use NewService instead. To provide a custom HTTP client, use option.WithHTTPClient. If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
func NewService ¶
NewService creates a new Service.
type TestingDetails ¶
type TestingDetails struct { // IsTestingResponse: Required. Indicates that the information contained // in this payload is a testing response that is statically overridden // for a tester. IsTestingResponse bool `json:"isTestingResponse,omitempty"` // ForceSendFields is a list of field names (e.g. "IsTestingResponse") // to unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "IsTestingResponse") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` }
TestingDetails: Contains additional information generated for testing responses.
func (*TestingDetails) MarshalJSON ¶
func (s *TestingDetails) MarshalJSON() ([]byte, error)
type TokenPayloadExternal ¶
type TokenPayloadExternal struct { // AccountDetails: Required. Details about the Play Store account. AccountDetails *AccountDetails `json:"accountDetails,omitempty"` // AppIntegrity: Required. Details about the application integrity. AppIntegrity *AppIntegrity `json:"appIntegrity,omitempty"` // DeviceIntegrity: Required. Details about the device integrity. DeviceIntegrity *DeviceIntegrity `json:"deviceIntegrity,omitempty"` // RequestDetails: Required. Details about the integrity request. RequestDetails *RequestDetails `json:"requestDetails,omitempty"` // TestingDetails: Indicates that this payload is generated for testing // purposes and contains any additional data that is linked with testing // status. TestingDetails *TestingDetails `json:"testingDetails,omitempty"` // ForceSendFields is a list of field names (e.g. "AccountDetails") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AccountDetails") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` }
TokenPayloadExternal: Contains basic app information and integrity signals like device attestation and licensing details.
func (*TokenPayloadExternal) MarshalJSON ¶
func (s *TokenPayloadExternal) MarshalJSON() ([]byte, error)
type V1DecodeIntegrityTokenCall ¶
type V1DecodeIntegrityTokenCall struct {
// contains filtered or unexported fields
}
func (*V1DecodeIntegrityTokenCall) Context ¶
func (c *V1DecodeIntegrityTokenCall) Context(ctx context.Context) *V1DecodeIntegrityTokenCall
Context sets the context to be used in this call's Do method. Any pending HTTP request will be aborted if the provided context is canceled.
func (*V1DecodeIntegrityTokenCall) Do ¶
func (c *V1DecodeIntegrityTokenCall) Do(opts ...googleapi.CallOption) (*DecodeIntegrityTokenResponse, error)
Do executes the "playintegrity.decodeIntegrityToken" call. Exactly one of *DecodeIntegrityTokenResponse or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *DecodeIntegrityTokenResponse.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.
func (*V1DecodeIntegrityTokenCall) Fields ¶
func (c *V1DecodeIntegrityTokenCall) Fields(s ...googleapi.Field) *V1DecodeIntegrityTokenCall
Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.
func (*V1DecodeIntegrityTokenCall) Header ¶
func (c *V1DecodeIntegrityTokenCall) Header() http.Header
Header returns an http.Header that can be modified by the caller to add HTTP headers to the request.
type V1Service ¶
type V1Service struct {
// contains filtered or unexported fields
}
func NewV1Service ¶
func (*V1Service) DecodeIntegrityToken ¶
func (r *V1Service) DecodeIntegrityToken(packageName string, decodeintegritytokenrequest *DecodeIntegrityTokenRequest) *V1DecodeIntegrityTokenCall
DecodeIntegrityToken: Decodes the integrity token and returns the token payload.
- packageName: Package name of the app the attached integrity token belongs to.