2 import gobject, gtk, hildon
5 from org.maemo.hermes.engine.provider_oauth import OAuthProvider
6 import org.maemo.hermes.engine.linkedin.service
7 from org.maemo.hermes.engine.linkedin.api import LinkedInApi
9 class Provider(OAuthProvider):
10 """LinkedIn provider for Hermes.
12 Copyright (c) Andrew Flegg <andrew@bleb.org> 2010.
13 Released under the Artistic Licence."""
15 LI_API_URL = "https://api.linkedin.com"
17 REQUEST_TOKEN_URL = LI_API_URL + "/uas/oauth/requestToken"
18 AUTHORIZE_URL = LI_API_URL + "/uas/oauth/authorize"
19 ACCESS_TOKEN_URL = LI_API_URL + "/uas/oauth/accessToken"
22 # -----------------------------------------------------------------------
24 OAuthProvider.__init__(self)
25 self._api = LinkedInApi(self.consumer, self.make_api_request)
28 # -----------------------------------------------------------------------
30 """Return the display name of this service. An icon, of with the lower-case,
31 all-alphabetic version of this name is expected to be provided."""
36 # -----------------------------------------------------------------------
38 """Return the various URLs needed for OAuth."""
40 return (self.REQUEST_TOKEN_URL, self.ACCESS_TOKEN_URL, self.AUTHORIZE_URL)
43 # -----------------------------------------------------------------------
44 def additional_prefs(self, dialog):
45 self._checkbox = hildon.CheckButton(gtk.HILDON_SIZE_FINGER_HEIGHT)
46 self._checkbox.set_label(_('Import new contacts'))
47 self._checkbox.set_active(self._gc.get_bool('/apps/maemo/hermes/linkedin_create_new'))
49 dialog.vbox.add(self._checkbox)
50 dialog.vbox.add(gtk.Label(""))
53 # -----------------------------------------------------------------------
54 def handle_prefs_response(self, result):
55 self._gc.set_bool('/apps/maemo/hermes/linkedin_create_new', self._checkbox.get_active())
59 # -----------------------------------------------------------------------
60 def service(self, gui_callback):
61 """Return the service backend."""
63 return org.maemo.hermes.engine.linkedin.service.Service(self.get_id(), self._api, self._gc.get_bool('/apps/maemo/hermes/linkedin_create_new'))
66 # -----------------------------------------------------------------------
67 def verify_verifier(self, access_token):
68 return self._api.verify_verifier(access_token)