The term GOA application is used to describe applications or libraries that are using the GNOME Online Accounts D-Bus APIs either directly or through the supplied client library.
A GOA application typically creates GoaClient object to get a
list of accounts and listen for changes. Each account provide
one or more specific services (such as mail,
calendaring
or contacts)
so the application will need to set up a filter for the
services it is interested in. For example, a mail application
would only be interested in GOA accounts with mail- and
contacts-services, not accounts with
calendaring-services. Applications can use methods on the
GoaObject type (such as goa_object_peek_mail()
) to check what
kind of services an account provides. Note that this list can
change at run-time if e.g. the user toggles a Use
account for Mail check-button.
Applications may use the Account.Id property as a unique key to store information obtained from an account.
Applications must not destroy data if an account object is removed (e.g. when the “account-removed” signal is emitted) - for example, if the goa-daemon program crashes or is restarted on software upgrade, account objects will be removed only to be added back the next time goa-daemon is started.
Applications should use the
Account.ProviderIcon,
Account.ProviderName
and
Account.PresentationIdentity
properties when presenting an account in an user interface.
For example, for a hypothetical online services provider Acme,
this would be the Acme Logo, the word "Acme" and the identity
could be either an email address such as
<some.name@acme.com>
or an user
handle such as davidz25
or
chunkylover53
.