<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: DropBox API auth error - {&amp;quot;.tag&amp;quot; = &amp;quot;expired_access_token&amp;quot;} in Dropbox API Support &amp; Feedback</title>
    <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537561#M25827</link>
    <description>&lt;P&gt;You do not need to send the user through the authorization flow every time they want to use the Dropbox integration. You can have them authorize it once, using authorizeFromControllerV2, and the SDK will automatically store the resulting access token and refresh token for you. You can use authorizedClient to check if you already have credentials saved for that user, and use it if so. The SDK will automatically perform the refresh process for you whenever needed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note though that the user or app can revoke the authorization at any time though, at which point you would need to have the user re-authorize the app if they wish to continue using the integration.&lt;/P&gt;</description>
    <pubDate>Fri, 06 Aug 2021 16:03:57 GMT</pubDate>
    <dc:creator>Greg-DB</dc:creator>
    <dc:date>2021-08-06T16:03:57Z</dc:date>
    <item>
      <title>DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537393#M25819</link>
      <description>&lt;P&gt;Language Swift&lt;/P&gt;
&lt;P&gt;iOS Version 14.4&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We have app where we use dropbox api to allow our users to upload a document.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This app used to working perfectly two years ago.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Very recently we made some small changes and trying to publish now.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;DropBox API returns the following annoying error.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;API Auth error - {".tag" = "expired_access_token";}&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please explain why in this version I am having this issue.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 05 Aug 2021 22:37:38 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537393#M25819</guid>
      <dc:creator>Garnik G.</dc:creator>
      <dc:date>2021-08-05T22:37:38Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537523#M25820</link>
      <description>&lt;P&gt;If your account-level is higher than basic then try a support ticket.&lt;/P&gt;
&lt;P&gt;They should be able to help you faster.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Aug 2021 12:39:11 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537523#M25820</guid>
      <dc:creator>ernstMreicher58</dc:creator>
      <dc:date>2021-08-06T12:39:11Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537527#M25821</link>
      <description>&lt;P&gt;Why dropbox become such an **bleep**?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there anybody from dropbox who can read this and try to help.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can't&amp;nbsp; find any way to contact them.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Maybe we should cancel the subscription.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Aug 2021 13:42:00 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537527#M25821</guid>
      <dc:creator>Garnik G.</dc:creator>
      <dc:date>2021-08-06T13:42:00Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537545#M25822</link>
      <description>&lt;P&gt;The new short-lived access tokens used by the Dropbox API do expire after four hours, at which point you'd get this 'expired_access_token' error. In that case, you would either need to have the user re-authorize the app to get a new short-lived access token, or if the app requested "offline" access, use the refresh token to get a new short-lived access token programmatically. You can find more information on this in &lt;A href="https://developers.dropbox.com/oauth-guide" target="_self"&gt;the OAuth Guide&lt;/A&gt; and &lt;A href="https://dropbox.tech/developers/migrating-app-permissions-and-access-tokens" target="_self"&gt;this blog post&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You mentioned you're using Swift, but you didn't mention if you're using &lt;A href="https://github.com/dropbox/SwiftyDropbox" target="_self"&gt;the official SwiftyDropbox SDK&lt;/A&gt;. If you are using that SDK, it should do all of this work for you, including setting up and using "offline" access, as long as you're using a recent version of it and &lt;A href="https://github.com/dropbox/SwiftyDropbox#begin-the-authorization-flow" target="_self"&gt;set it up as documented&lt;/A&gt; (i.e., using authorizeFromControllerV2).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If something's not working as expected, I'll be happy to help, but I'll need some more information. In that case, please reply with:&lt;/P&gt;
&lt;UL dir="auto"&gt;
&lt;LI&gt;the name and version number of the platform and SDK/library you are using, if any&lt;/LI&gt;
&lt;LI&gt;the steps to reproduce the issue, including relevant code snippet(s), but don't include any access/refresh token(s)&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Fri, 06 Aug 2021 14:46:17 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537545#M25822</guid>
      <dc:creator>Greg-DB</dc:creator>
      <dc:date>2021-08-06T14:46:17Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537548#M25824</link>
      <description>&lt;P&gt;I use SwiftyDropBox which was install by pod&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The version number is&amp;nbsp;7.0.1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please note this code was working fine before.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I do not use any access_token&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I use is this&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;DropboxClientsManager&lt;SPAN class="s1"&gt;.&lt;/SPAN&gt;setupWithAppKey&lt;SPAN class="s1"&gt;(&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;"&amp;lt;my key&amp;gt;"&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;)&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And this is the function I call when user click to dropbox button&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;func&lt;/SPAN&gt; sendUsingDropBox() {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p3"&gt;&lt;STRONG&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;let&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; dbClient = &lt;/SPAN&gt;DropboxClientsManager&lt;SPAN class="s2"&gt;.&lt;/SPAN&gt;authorizedClient&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;if&lt;/SPAN&gt; (dbClient &lt;SPAN class="s3"&gt;!=&lt;/SPAN&gt; &lt;SPAN class="s1"&gt;nil&lt;/SPAN&gt;) {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p3"&gt;&lt;STRONG&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;isDropBoxModalOpened&lt;SPAN class="s2"&gt; = &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;false&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s4"&gt;startWI&lt;/SPAN&gt;()&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;dbClient?.&lt;SPAN class="s4"&gt;files&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;listFolder&lt;/SPAN&gt;(path: &lt;SPAN class="s5"&gt;""&lt;/SPAN&gt;, recursive: &lt;SPAN class="s1"&gt;true&lt;/SPAN&gt;, includeMediaInfo: &lt;SPAN class="s1"&gt;true&lt;/SPAN&gt;).&lt;SPAN class="s4"&gt;response&lt;/SPAN&gt;(queue: &lt;SPAN class="s3"&gt;DispatchQueue&lt;/SPAN&gt;(label: &lt;SPAN class="s5"&gt;"DbLfSerialQueue"&lt;/SPAN&gt;)) { response, error &lt;SPAN class="s1"&gt;in&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;if&lt;/SPAN&gt; &lt;SPAN class="s1"&gt;let&lt;/SPAN&gt; result = response {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;dbFolders&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;removeAll&lt;/SPAN&gt;()&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;result.&lt;SPAN class="s4"&gt;entries&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;forEach&lt;/SPAN&gt;({(metdaData) &lt;SPAN class="s1"&gt;in&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;if&lt;/SPAN&gt; &lt;SPAN class="s3"&gt;!&lt;/SPAN&gt;metdaData.&lt;SPAN class="s4"&gt;description&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;contains&lt;/SPAN&gt;(&lt;SPAN class="s5"&gt;"size="&lt;/SPAN&gt;) &lt;SPAN class="s3"&gt;&amp;amp;&amp;amp;&lt;/SPAN&gt; &lt;SPAN class="s3"&gt;!&lt;/SPAN&gt;metdaData.&lt;SPAN class="s4"&gt;description&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;contains&lt;/SPAN&gt;(&lt;SPAN class="s5"&gt;"size ="&lt;/SPAN&gt;) {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;dbFolders&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;append&lt;/SPAN&gt;(metdaData.&lt;SPAN class="s4"&gt;pathDisplay&lt;/SPAN&gt;!)&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;})&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;DispatchQueue&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;main&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;async&lt;/SPAN&gt; {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;stopWI&lt;/SPAN&gt;()&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;showChooser&lt;/SPAN&gt;()&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class="s1"&gt;else&lt;/SPAN&gt; &lt;SPAN class="s1"&gt;if&lt;/SPAN&gt; &lt;SPAN class="s1"&gt;let&lt;/SPAN&gt; error = error {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;print&lt;/SPAN&gt;(error.&lt;SPAN class="s4"&gt;description&lt;/SPAN&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;DispatchQueue&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;main&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;async&lt;/SPAN&gt; {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;stopWI&lt;/SPAN&gt;()&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;let&lt;/SPAN&gt; alert = &lt;SPAN class="s3"&gt;UIAlertController&lt;/SPAN&gt;(title: &lt;SPAN class="s5"&gt;"DropBox"&lt;/SPAN&gt;, message: error.&lt;SPAN class="s4"&gt;description&lt;/SPAN&gt;, preferredStyle: &lt;SPAN class="s3"&gt;UIAlertControllerStyle&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;alert&lt;/SPAN&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;alert.&lt;SPAN class="s3"&gt;addAction&lt;/SPAN&gt;(&lt;SPAN class="s3"&gt;UIAlertAction&lt;/SPAN&gt;(title: &lt;SPAN class="s4"&gt;THAlerts&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;Ok&lt;/SPAN&gt;, style: &lt;SPAN class="s3"&gt;UIAlertActionStyle&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;default&lt;/SPAN&gt;, handler: &lt;SPAN class="s1"&gt;nil&lt;/SPAN&gt;))&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;present&lt;/SPAN&gt;(alert, animated: &lt;SPAN class="s1"&gt;false&lt;/SPAN&gt;, completion: &lt;SPAN class="s1"&gt;nil&lt;/SPAN&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class="s1"&gt;else&lt;/SPAN&gt; {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p3"&gt;&lt;STRONG&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;isDropBoxModalOpened&lt;SPAN class="s2"&gt; = &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;true&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p3"&gt;&lt;STRONG&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;DropboxClientsManager&lt;SPAN class="s2"&gt;.&lt;/SPAN&gt;authorizeFromController&lt;SPAN class="s2"&gt;(&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;UIApplication&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;.&lt;/SPAN&gt;&lt;SPAN class="s3"&gt;shared&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;,&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;controller: &lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;,&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;openURL: { (url: &lt;SPAN class="s3"&gt;URL&lt;/SPAN&gt;) -&amp;gt; &lt;SPAN class="s3"&gt;Void&lt;/SPAN&gt; &lt;SPAN class="s1"&gt;in&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;UIApplication&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;shared&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;open&lt;/SPAN&gt;(url, options: [:], completionHandler: &lt;SPAN class="s1"&gt;nil&lt;/SPAN&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;})&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Aug 2021 14:52:08 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537548#M25824</guid>
      <dc:creator>Garnik G.</dc:creator>
      <dc:date>2021-08-06T14:52:08Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537550#M25825</link>
      <description>&lt;P&gt;Thanks for the additional information. From this I see you're using the 'authorizeFromController' method. You'll need to switch to using the 'authorizeFromControllerV2' method instead &lt;A href="https://github.com/dropbox/SwiftyDropbox#begin-the-authorization-flow" target="_self"&gt;as shown here&lt;/A&gt; to support the new flow. Once you do so, the SDK will automatically handle short-lived access tokens and refresh tokens for you so you shouldn't receive 'expired_access_token' for new authorizations.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Aug 2021 15:19:05 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537550#M25825</guid>
      <dc:creator>Greg-DB</dc:creator>
      <dc:date>2021-08-06T15:19:05Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537558#M25826</link>
      <description>&lt;P&gt;Should I authorize the client everytime they hit dropbox button ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So before I had this code&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;SPAN class="s2"&gt;let&lt;/SPAN&gt;&lt;SPAN class="s1"&gt; dbClient = &lt;/SPAN&gt;DropboxClientsManager&lt;SPAN class="s1"&gt;.&lt;/SPAN&gt;authorizedClient&lt;/P&gt;&lt;P class="p2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="p3"&gt;&lt;SPAN class="s2"&gt;if&lt;/SPAN&gt; (dbClient &lt;SPAN class="s3"&gt;!=&lt;/SPAN&gt; &lt;SPAN class="s2"&gt;nil&lt;/SPAN&gt;) {&amp;nbsp;&lt;/P&gt;&lt;P class="p3"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// read files&lt;/P&gt;&lt;P class="p3"&gt;} else {&lt;/P&gt;&lt;P class="p3"&gt;&amp;nbsp;//authorize&lt;/P&gt;&lt;P class="p3"&gt;}&lt;/P&gt;&lt;P class="p3"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p3"&gt;In some reason dbClient is always NOT nil even if I open the app after fresh uninstall.&lt;/P&gt;&lt;P class="p3"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p3"&gt;So is there any specific attributes that I can use to check if user is already authorized or no ?&lt;/P&gt;&lt;P class="p3"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p3"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Aug 2021 15:40:18 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537558#M25826</guid>
      <dc:creator>Garnik G.</dc:creator>
      <dc:date>2021-08-06T15:40:18Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537561#M25827</link>
      <description>&lt;P&gt;You do not need to send the user through the authorization flow every time they want to use the Dropbox integration. You can have them authorize it once, using authorizeFromControllerV2, and the SDK will automatically store the resulting access token and refresh token for you. You can use authorizedClient to check if you already have credentials saved for that user, and use it if so. The SDK will automatically perform the refresh process for you whenever needed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Note though that the user or app can revoke the authorization at any time though, at which point you would need to have the user re-authorize the app if they wish to continue using the integration.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Aug 2021 16:03:57 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537561#M25827</guid>
      <dc:creator>Greg-DB</dc:creator>
      <dc:date>2021-08-06T16:03:57Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537578#M25830</link>
      <description>&lt;P&gt;You did not answer to my question.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The problem is that&amp;nbsp;&lt;SPAN&gt;DropboxClientsManager&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;authorizedClient is not nil all the time and I do not know how to check if user is authorized or not.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Please be specific.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Aug 2021 16:52:33 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537578#M25830</guid>
      <dc:creator>Garnik G.</dc:creator>
      <dc:date>2021-08-06T16:52:33Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537579#M25831</link>
      <description>&lt;P&gt;That is how you check. You can check if authorizedClient is nil or not. If it is not nil, that means you have a saved client to use for that user. (And if the app was disconnected from the account server-side, attempting to use it will accordingly fail with an error.)&lt;/P&gt;</description>
      <pubDate>Fri, 06 Aug 2021 16:55:57 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537579#M25831</guid>
      <dc:creator>Greg-DB</dc:creator>
      <dc:date>2021-08-06T16:55:57Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537582#M25832</link>
      <description>&lt;P&gt;Please let me know if I miss anything from the following&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. I remove the app completely from simulator or device&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. I disconnec the dropbox app from my dropbox account&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3. I clean and rebuild the code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;4. I run the app and click to dropbox connect button the following function runs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p1"&gt;&lt;STRONG&gt;&lt;SPAN class="s1"&gt;func&lt;/SPAN&gt; sendUsingDropBox&lt;SPAN class="s2"&gt;() {&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p3"&gt;&lt;STRONG&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;let&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; dbClient = &lt;/SPAN&gt;DropboxClientsManager&lt;SPAN class="s2"&gt;.&lt;/SPAN&gt;authorizedClient&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;if&lt;/SPAN&gt; (dbClient &lt;SPAN class="s3"&gt;!=&lt;/SPAN&gt; &lt;SPAN class="s1"&gt;nil&lt;/SPAN&gt;) {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p3"&gt;&lt;STRONG&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;isDropBoxModalOpened&lt;SPAN class="s2"&gt; = &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;false&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s4"&gt;startWI&lt;/SPAN&gt;()&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;dbClient?.&lt;SPAN class="s4"&gt;files&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;listFolder&lt;/SPAN&gt;(path: &lt;SPAN class="s5"&gt;""&lt;/SPAN&gt;, recursive: &lt;SPAN class="s1"&gt;true&lt;/SPAN&gt;, includeMediaInfo: &lt;SPAN class="s1"&gt;true&lt;/SPAN&gt;).&lt;SPAN class="s4"&gt;response&lt;/SPAN&gt;(queue: &lt;SPAN class="s3"&gt;DispatchQueue&lt;/SPAN&gt;(label: &lt;SPAN class="s5"&gt;"DbLfSerialQueue"&lt;/SPAN&gt;)) { response, error &lt;SPAN class="s1"&gt;in&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;if&lt;/SPAN&gt; &lt;SPAN class="s1"&gt;let&lt;/SPAN&gt; result = response {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;dbFolders&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;removeAll&lt;/SPAN&gt;()&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;result.&lt;SPAN class="s4"&gt;entries&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;forEach&lt;/SPAN&gt;({(metdaData) &lt;SPAN class="s1"&gt;in&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;if&lt;/SPAN&gt; &lt;SPAN class="s3"&gt;!&lt;/SPAN&gt;metdaData.&lt;SPAN class="s4"&gt;description&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;contains&lt;/SPAN&gt;(&lt;SPAN class="s5"&gt;"size="&lt;/SPAN&gt;) &lt;SPAN class="s3"&gt;&amp;amp;&amp;amp;&lt;/SPAN&gt; &lt;SPAN class="s3"&gt;!&lt;/SPAN&gt;metdaData.&lt;SPAN class="s4"&gt;description&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;contains&lt;/SPAN&gt;(&lt;SPAN class="s5"&gt;"size ="&lt;/SPAN&gt;) {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;dbFolders&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;append&lt;/SPAN&gt;(metdaData.&lt;SPAN class="s4"&gt;pathDisplay&lt;/SPAN&gt;!)&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;})&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;DispatchQueue&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;main&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;async&lt;/SPAN&gt; {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;stopWI&lt;/SPAN&gt;()&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;showChooser&lt;/SPAN&gt;()&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class="s1"&gt;else&lt;/SPAN&gt; &lt;SPAN class="s1"&gt;if&lt;/SPAN&gt; &lt;SPAN class="s1"&gt;let&lt;/SPAN&gt; error = error {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;print&lt;/SPAN&gt;(error.&lt;SPAN class="s4"&gt;description&lt;/SPAN&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;DispatchQueue&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;main&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;async&lt;/SPAN&gt; {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;stopWI&lt;/SPAN&gt;()&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;let&lt;/SPAN&gt; alert = &lt;SPAN class="s3"&gt;UIAlertController&lt;/SPAN&gt;(title: &lt;SPAN class="s5"&gt;"DropBox"&lt;/SPAN&gt;, message: error.&lt;SPAN class="s4"&gt;description&lt;/SPAN&gt;, preferredStyle: &lt;SPAN class="s3"&gt;UIAlertControllerStyle&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;alert&lt;/SPAN&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;alert.&lt;SPAN class="s3"&gt;addAction&lt;/SPAN&gt;(&lt;SPAN class="s3"&gt;UIAlertAction&lt;/SPAN&gt;(title: &lt;SPAN class="s4"&gt;THAlerts&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;Ok&lt;/SPAN&gt;, style: &lt;SPAN class="s3"&gt;UIAlertActionStyle&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;default&lt;/SPAN&gt;, handler: &lt;SPAN class="s1"&gt;nil&lt;/SPAN&gt;))&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;present&lt;/SPAN&gt;(alert, animated: &lt;SPAN class="s1"&gt;false&lt;/SPAN&gt;, completion: &lt;SPAN class="s1"&gt;nil&lt;/SPAN&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;} &lt;SPAN class="s1"&gt;else&lt;/SPAN&gt; {&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p3"&gt;&lt;STRONG&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;isDropBoxModalOpened&lt;SPAN class="s2"&gt; = &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;true&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p5"&gt;&lt;STRONG&gt;&lt;SPAN class="s2"&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class="s1"&gt;let&lt;/SPAN&gt;&lt;SPAN class="s2"&gt; scopeRequest = &lt;/SPAN&gt;&lt;SPAN class="s4"&gt;ScopeRequest&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;(scopeType: .&lt;/SPAN&gt;&lt;SPAN class="s4"&gt;user&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;, scopes: [&lt;/SPAN&gt;"account_info.read"&lt;SPAN class="s2"&gt;, &lt;/SPAN&gt;"files.content.write"&lt;SPAN class="s2"&gt;, &lt;/SPAN&gt;"files.content.read"&lt;SPAN class="s2"&gt;, &lt;/SPAN&gt;"files.metadata.write"&lt;SPAN class="s2"&gt;, &lt;/SPAN&gt;"files.metadata.read"&lt;SPAN class="s2"&gt;], includeGrantedScopes: &lt;/SPAN&gt;&lt;SPAN class="s1"&gt;false&lt;/SPAN&gt;&lt;SPAN class="s2"&gt;)&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s4"&gt;DropboxClientsManager&lt;/SPAN&gt;.&lt;SPAN class="s4"&gt;authorizeFromControllerV2&lt;/SPAN&gt;(&lt;SPAN class="s3"&gt;UIApplication&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;shared&lt;/SPAN&gt;, controller: &lt;SPAN class="s1"&gt;self&lt;/SPAN&gt;, loadingStatusDelegate: &lt;SPAN class="s1"&gt;nil&lt;/SPAN&gt;, openURL: { (url: &lt;SPAN class="s3"&gt;URL&lt;/SPAN&gt;) -&amp;gt; &lt;SPAN class="s3"&gt;Void&lt;/SPAN&gt; &lt;SPAN class="s1"&gt;in&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="s3"&gt;UIApplication&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;shared&lt;/SPAN&gt;.&lt;SPAN class="s3"&gt;open&lt;/SPAN&gt;(url, options: [:], completionHandler: &lt;SPAN class="s1"&gt;nil&lt;/SPAN&gt;)}, scopeRequest: scopeRequest)&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p2"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&lt;STRONG&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P class="p4"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p4"&gt;And what happens is that&amp;nbsp; dbClient is not NULL and because of that it returns an error.&lt;/P&gt;&lt;P class="p4"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p4"&gt;In my understanding dbClient must be NULL because everything was cleaned and removed.&lt;/P&gt;&lt;P class="p4"&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="p4"&gt;What I miss here?&lt;/P&gt;&lt;P class="p4"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Aug 2021 17:02:48 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537582#M25832</guid>
      <dc:creator>Garnik G.</dc:creator>
      <dc:date>2021-08-06T17:02:48Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537593#M25833</link>
      <description>&lt;P&gt;Even if you've uninstalled the app, the client may still be saved locally since that's persisted in the iOS keychain. And if you've disconnected the app via the Dropbox web site, the SDK won't yet know that the connection has been revoked on the server until you attempt an actual API call, like listFolder, at which point you'll get an authorization error.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can just call&amp;nbsp;authorizeFromControllerV2 again to prompt the user to re-authorize the app. Or, if you do want to explicitly remove the local client, you can call &lt;A href="http://unlinkClients()" target="_self"&gt;unlinkClients&lt;/A&gt; at any time.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Aug 2021 17:11:57 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537593#M25833</guid>
      <dc:creator>Greg-DB</dc:creator>
      <dc:date>2021-08-06T17:11:57Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537596#M25834</link>
      <description>&lt;P&gt;That is not a solution.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can't write temporary code. I need to have normal way to verify if dbClient is valid object or not.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What if user want to connect another account.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There must be better approach.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Aug 2021 17:20:44 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537596#M25834</guid>
      <dc:creator>Garnik G.</dc:creator>
      <dc:date>2021-08-06T17:20:44Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537599#M25835</link>
      <description>&lt;P&gt;I'm not sure understand what you mean what you mean by "temporary code". The authorization flow with authorizeFromControllerV2 works effectively the same as it did with authorizeFromController, since the SDK handles the refresh flow for you. Just like with authorizeFromController, you can just process the authorization flow with authorizeFromControllerV2 and let the SDK handle the access token details for you. You would check and use authorizedClient the same way in both cases. (While authorizeFromControllerV2 uses short-lived tokens in its implementation, it works the same way for the app's code as before, since it maintains long-term access using refresh tokens automatically just like the SDK previously maintained long-term access using long-lived access tokens from authorizeFromController.)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you want to have the user switch to a different account, you can call authorizeFromControllerV2 again and it will replace the authorizedClient.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I recommend following the instructions in the &lt;A href="https://github.com/dropbox/SwiftyDropbox" target="_self"&gt;current documentation&lt;/A&gt;. If something isn't working as expected/documented, please show both the steps/code you're using, as well as the full unexpected error/output.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Aug 2021 17:39:58 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537599#M25835</guid>
      <dc:creator>Greg-DB</dc:creator>
      <dc:date>2021-08-06T17:39:58Z</dc:date>
    </item>
    <item>
      <title>Re: DropBox API auth error - {".tag" = "expired_access_token"}</title>
      <link>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537640#M25836</link>
      <description>&lt;P&gt;OK. I will try to see if it works also for other users. Thanks for help&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Aug 2021 20:21:53 GMT</pubDate>
      <guid>https://www.dropboxforum.com/t5/Dropbox-API-Support-Feedback/DropBox-API-auth-error-quot-tag-quot-quot-expired-access-token/m-p/537640#M25836</guid>
      <dc:creator>Garnik G.</dc:creator>
      <dc:date>2021-08-06T20:21:53Z</dc:date>
    </item>
  </channel>
</rss>

