<docbook><section><title>OdsTwitterAPIKeySecretExUsage</title><title> Using Twitter OAuth key-secret Configuration Guidelines</title> Using Twitter OAuth key-secret Configuration Guidelines
<bridgehead class="http://www.w3.org/1999/xhtml:h2"> What?</bridgehead>
 Use Twitter as 3rd party application for registering a new user or logging into ODS <ulink url="DataSpace">DataSpace</ulink> as already registered ODS User which account is associated with a given Twitter account.<para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h2"> Why?</bridgehead>
 Makes the process of managing users register/log in activities easier.<para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h2"> How?</bridgehead>
<para>In order to be able to register a new user or to log in into ODS Dataspace as already registered ODS user, you need to: </para>
<itemizedlist mark="bullet" spacing="compact"><listitem>Create ODS application within Twitter: <orderedlist spacing="compact"><listitem>Get an Consumer Key -- for identification; </listitem>
<listitem>Get an Consumer Secret -- for hash salting; </listitem>
<listitem>Provide a Callback URL -- for request &amp; access token exchange via redirection.
</listitem>
</orderedlist></listitem>
<listitem>Configure as ODS Administrator in Site Settings-&gt;Login Authentication Keys the Twitter API to use the generate from above Consumer Key and Secret.</listitem>
</itemizedlist><para>When the above is done, you can perform the following activities in ODS: </para>
<itemizedlist mark="bullet" spacing="compact"><listitem>Register in ODS using your Twitter credentials, or: </listitem>
<listitem>For a regular ODS user, for ex.
 with name XXX you can add in Profile-&gt;Personal-&gt;Online Accounts your Twitter account, which then will enable you to log in in your ODS XXX user dataspace using the Twitter account credentials.</listitem>
</itemizedlist><para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h2"> Examples</bridgehead>
<para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> Prerequisites</bridgehead>
<itemizedlist mark="bullet" spacing="compact"><listitem>A <ulink url="http://twitter.com/">Tiwtter user account</ulink> </listitem>
<listitem>Administrative (DBA) access to a <ulink url="http://virtuoso.openlinksw.com/">Virtuoso Server</ulink> instance, on which the following have been installed -- <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="https://virtuoso.openlinksw.com/download/">ODS-Framework VAD package</ulink></listitem>
</itemizedlist></listitem>
</itemizedlist><para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h4"> Steps for Configuring Twitter Consumer Key and Secret</bridgehead>
<bridgehead class="http://www.w3.org/1999/xhtml:h5"> 1 -- Get Twitter Client ID key and secret for use with ODS</bridgehead>
<orderedlist spacing="compact"><listitem>Browse to &lt;<ulink url="https://dev.twitter.com/apps">https://dev.twitter.com/apps</ulink>&gt; and enter your Twitter use credentials: <ulink url="OdsTwitterAPIKeySecretExUsage/step1-1.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step1-1.png" /></figure></ulink> <ulink url="OdsTwitterAPIKeySecretExUsage/step1-2.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step1-2.png" /></figure></ulink> </listitem>
<listitem>Click on <emphasis>Create a new application</emphasis>: <ulink url="OdsTwitterAPIKeySecretExUsage/step1-3.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step1-3.png" /></figure></ulink> </listitem>
<listitem>In the presented form: <orderedlist spacing="compact"><listitem>Enter a name for your Twitter client application to be known by, e.g., &quot;MyTwitterExample&quot;; </listitem>
<listitem>Enter a description, e.g., &quot;My Twitter Example Application&quot;; </listitem>
<listitem>Enter website, e.g., <ulink url="http://example.com/;">http://example.com/;</ulink> </listitem>
<listitem><emphasis>Provide a Callback URL</emphasis> -- Enter in &quot;Callback URL&quot; your ODS site URL that should match the host of the ODS installation.
 For ex.
 if ODS runs at <ulink url="http://example.com/ods/">http://example.com/ods/</ulink> then the URL in the Facebook app should be <ulink url="http://example.com.com/">http://example.com.com/</ulink> : </listitem>
<listitem>Click &quot;Yes, I agree&quot;; </listitem>
<listitem>Fill in the &quot;CAPTCHA&quot; field; <ulink url="OdsTwitterAPIKeySecretExUsage/step1-4.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step1-4.png" /></figure></ulink> <ulink url="OdsTwitterAPIKeySecretExUsage/step1-5.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step1-5.png" /></figure></ulink> <ulink url="OdsTwitterAPIKeySecretExUsage/step1-6.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step1-6.png" /></figure></ulink> </listitem>
</orderedlist></listitem>
<listitem>Click &quot;Create your Twitter application&quot;.
</listitem>
<listitem>The application should be registered and you will be shown a <emphasis>Consumer Key</emphasis> and <emphasis>Consumer Secret</emphasis> for the newly registered application.
 (You can copy these now, or come back for them later; they will also show up on the OAuth tool&quot; tab.
 Do be aware that you will need these in the steps that follow.): <ulink url="OdsTwitterAPIKeySecretExUsage/step1-7.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step1-7.png" /></figure></ulink> <ulink url="OdsTwitterAPIKeySecretExUsage/step1-8.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step1-8.png" /></figure></ulink></listitem>
</orderedlist><bridgehead class="http://www.w3.org/1999/xhtml:h5"> 2 -- Configure ODS to use your Twitter Consumer Key and Secret</bridgehead>
<orderedlist spacing="compact"><listitem>Browse to your Virtuoso + ODS instance, http://&lt;cname&gt;[:&lt;port&gt;]/ods, e.g., &lt;<ulink url="http://example.com/ods/">http://example.com/ods/</ulink>&gt;, and click <emphasis>Sign In</emphasis>.
<ulink url="OdsTwitterAPIKeySecretExUsage/step2-1.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step2-1.png" /></figure></ulink> </listitem>
<listitem>Log in as a Virtuoso+ODS user with Administrator privileges, e.g., dba.
<ulink url="OdsTwitterAPIKeySecretExUsage/step2-2.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step2-2.png" /></figure></ulink> </listitem>
<listitem>Click on <emphasis>Site Settings</emphasis>: <ulink url="OdsTwitterAPIKeySecretExUsage/step2-3.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step2-3.png" /></figure></ulink> </listitem>
<listitem>Click on <emphasis>Login Authentication Keys</emphasis>: <ulink url="OdsTwitterAPIKeySecretExUsage/step2-4.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step2-4.png" /></figure></ulink> </listitem>
<listitem>Select <emphasis>TwitterAPI</emphasis> in the <emphasis>API Name</emphasis> menu, provide the <emphasis>Consumer Key</emphasis> and <emphasis>Consumer Secret</emphasis> from the new Twitter application you created above, and click <emphasis>Add</emphasis>.
<ulink url="OdsTwitterAPIKeySecretExUsage/step2-5.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step2-5.png" /></figure></ulink> </listitem>
<listitem>ODS is now configured to use Twitter.
<ulink url="OdsTwitterAPIKeySecretExUsage/step2-6.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step2-6.png" /></figure></ulink></listitem>
</orderedlist><para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3">Example for Configuring regular ODS user to log in into ODS using Twitter Account credentials</bridgehead>
<para>Here is a sample scenario how to configure a regular ODS user to be able to log in in its ODS Dataspace using his/her own Twitter Account:</para>
<orderedlist spacing="compact"><listitem>Browse to your Virtuoso + ODS instance, http://&lt;cname&gt;[:&lt;port&gt;]/ods, e.g., &lt;<ulink url="http://example.com/ods/">http://example.com/ods/</ulink>&gt;.
<ulink url="OdsTwitterAPIKeySecretExUsage/step3-1.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step3-1.png" /></figure></ulink> </listitem>
<listitem>Log in as a Virtuoso+ODS user with normal privileges, e.g., demo.
<ulink url="OdsTwitterAPIKeySecretExUsage/step3-2.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step3-2.png" /></figure></ulink> </listitem>
<listitem>Go to Profile Edit-&gt;Personal-&gt;Online Accounts: <ulink url="OdsTwitterAPIKeySecretExUsage/step3-3.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step3-3.png" /></figure></ulink> </listitem>
<listitem>Click &quot;Add&quot;: <ulink url="OdsTwitterAPIKeySecretExUsage/step3-4.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step3-4.png" /></figure></ulink> </listitem>
<listitem>In the presented form select service Twitter.
 By default the &quot;Member Home Page URI&quot; has value  <ulink url="http://twitter.com/&lt;your-ODS-user-name&gt;">http://twitter.com/&lt;your-ODS-user-name&gt;</ulink>  and the &quot;Account URI&quot; has value  <ulink url="http://twitter.com/&lt;your-ODS-user-name&gt;#this">http://twitter.com/&lt;your-ODS-user-name&gt;#this</ulink> .
 You need to change the  &lt;your-ODS-user-name&gt;  from these URLs with your Twitter account name.
</listitem>
<listitem>Click the &quot;Link&quot; button from &quot;Action&quot; column: <ulink url="OdsTwitterAPIKeySecretExUsage/step3-4a.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step3-4a.png" /></figure></ulink> </listitem>
<listitem>Finally click &quot;Save&quot;.
</listitem>
<listitem>Log out from ODS <ulink url="DataSpace">DataSpace</ulink>.
</listitem>
<listitem>Make sure Twitter Login is enabled from admin user available at Site Settings -&gt; Members Registrations: <ulink url="OdsTwitterAPIKeySecretExUsage/step3-5.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step3-5.png" /></figure></ulink> </listitem>
<listitem>Click Sign In: </listitem>
<listitem>Go to &quot;Twitter&quot; tab: <ulink url="OdsTwitterAPIKeySecretExUsage/step3-6.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step3-6.png" /></figure></ulink> </listitem>
<listitem>Click &quot;Twitter Login&quot; </listitem>
<listitem>Twitter should ask you to for authorization for the created application from above: <ulink url="OdsTwitterAPIKeySecretExUsage/step3-7.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step3-7.png" /></figure></ulink> </listitem>
<listitem>Click &quot;Sign In&quot; in the Twitter form </listitem>
<listitem>On a successful authorization you should be redirected back to the ODS <ulink url="DataSpace">DataSpace</ulink> and should be logged in as the regular user from above, e.g: user &quot;demo&quot;.
<ulink url="OdsTwitterAPIKeySecretExUsage/step3-8.png"><figure><graphic fileref="OdsTwitterAPIKeySecretExUsage/step3-8.png" /></figure></ulink></listitem>
</orderedlist><bridgehead class="http://www.w3.org/1999/xhtml:h2">Related</bridgehead>
<itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="OdsSetLoginAuthenticaionKeys">Set up Login Authentication Keys in ODS</ulink> <orderedlist spacing="compact"><listitem>Examples using 3rd Party Accounts for register/log in in ODS <ulink url="DataSpace">DataSpace</ulink>: <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="OdsFacebookAPIKeySecretExUsage">Using Facebook -- OAuth consumer key-secret Configuration Guidelines</ulink> </listitem>
<listitem><ulink url="OdsLinkedInAPIKeySecretExUsage">Using LinkedIn -- OAuth consumer key-secret Configuration Guidelines</ulink> </listitem>
</itemizedlist></listitem>
<listitem>Examples using 3rd Party Services for data management: <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="OdsBriefcaseAmazonS3">Using ODS-Briefcase to mediate access to data stored on Amazon S3</ulink> </listitem>
<listitem><ulink url="OdsBriefcaseBoxNet">Using ODS-Briefcase to mediate access to data stored on Box (a/k/a box.com or box.net)</ulink> </listitem>
<listitem><ulink url="OdsBriefcaseDropBox">Using ODS-Briefcase to mediate access to data stored on DropBox</ulink> </listitem>
<listitem><ulink url="OdsBriefcaseGoogleDrive">Using ODS-Briefcase to mediate access to data stored on Google Drive</ulink> </listitem>
<listitem><ulink url="OdsBriefcaseSkyDrive">Using ODS-Briefcase to mediate access to data stored on Microsoft OneDrive (formerly SkyDrive)</ulink> </listitem>
</itemizedlist></listitem>
</orderedlist></listitem>
<listitem>Virtuoso Cartridges Configuration: <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtCartConfigFacebook">Facebook Cartridge - Configuration Guidelines</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtCartConfigGooglePlus">Google+ Cartridge - Configuration Guidelines</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtCartConfigLinkedIn">LinkedIn Cartridge - Configuration Guidelines</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtCartConfigTwitter">Twitter Cartridge - Configuration Guidelines</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="VirtOAuthControllers">OAuth Generate Keys for ODS Controllers (Web Services)</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/wiki/main/Main/VirtuosoOAuthProgrammersGuide">Use OAuth for authentication, SPARQL queries, Ubiquity commands</ulink> </listitem>
<listitem><ulink url="VirtOAuthTestTool">Use the Virtuoso OAuth Test tool to manage my Data Space data</ulink> </listitem>
<listitem><ulink url="VirtuosoOdsControllers">Manipulate User Data via REST using authentication based on OAuth, sessions, or password hash</ulink> </listitem>
<listitem><ulink url="ODSProgrammersGuide">ODS Programmers&#39; Guide</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/wiki/main/Main/VirtuosoOAuthProgrammersGuide">Virtuoso OAuth Programmers&#39; Guide</ulink> </listitem>
<listitem><ulink url="VirtOAuthExamples">Examples of ODS Application Authentication using OAuth</ulink> </listitem>
<listitem><ulink url="VirtuosoOdsUbiquityTutorialsOAuth">OAuth Ubiquity Tutorial</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/wiki/main/Main/VirtOAuthSPARQL">SPARQL OAuth Tutorial</ulink></listitem>
</itemizedlist></section></docbook>