diff --git a/src/internet/googledrive/googledriveclient.cpp b/src/internet/googledrive/googledriveclient.cpp index 008071b01..c91434ae0 100644 --- a/src/internet/googledrive/googledriveclient.cpp +++ b/src/internet/googledrive/googledriveclient.cpp @@ -132,9 +132,12 @@ void Client::FetchUserInfoFinished(ConnectResponse* response, emit Authenticated(); } +QByteArray Client::GetAuthHeader() const { + return QString("Bearer %1").arg(access_token_).toUtf8(); +} + void Client::AddAuthorizationHeader(QNetworkRequest* request) const { - request->setRawHeader("Authorization", - QString("Bearer %1").arg(access_token_).toUtf8()); + request->setRawHeader("Authorization", GetAuthHeader()); } GetFileResponse* Client::GetFile(const QString& file_id) { diff --git a/src/internet/googledrive/googledriveclient.h b/src/internet/googledrive/googledriveclient.h index 5fbda24b6..5e23a4107 100644 --- a/src/internet/googledrive/googledriveclient.h +++ b/src/internet/googledrive/googledriveclient.h @@ -149,6 +149,8 @@ class Client : public QObject { GetFileResponse* GetFile(const QString& file_id); ListChangesResponse* ListChanges(const QString& cursor); + QByteArray GetAuthHeader() const; + signals: void Authenticated(); diff --git a/src/internet/googledrive/googledriveservice.cpp b/src/internet/googledrive/googledriveservice.cpp index 449b41b64..00d05440f 100644 --- a/src/internet/googledrive/googledriveservice.cpp +++ b/src/internet/googledrive/googledriveservice.cpp @@ -209,11 +209,7 @@ QUrl GoogleDriveService::GetStreamingUrlFromSongId(const QString& id) { return QUrl(); } - QUrl url(response->file().download_url()); - QUrlQuery url_query(url); - url_query.addQueryItem("access_token", client_->access_token()); - url.setQuery(url_query); - return url; + return QUrl(response->file().download_url()); } void GoogleDriveService::ShowContextMenu(const QPoint& global_pos) { diff --git a/src/internet/googledrive/googledriveurlhandler.cpp b/src/internet/googledrive/googledriveurlhandler.cpp index 9705df5bf..7fa0f58c1 100644 --- a/src/internet/googledrive/googledriveurlhandler.cpp +++ b/src/internet/googledrive/googledriveurlhandler.cpp @@ -18,6 +18,7 @@ #include "googledriveurlhandler.h" +#include "googledriveclient.h" #include "googledriveservice.h" GoogleDriveUrlHandler::GoogleDriveUrlHandler(GoogleDriveService* service, @@ -29,5 +30,7 @@ UrlHandler::LoadResult GoogleDriveUrlHandler::StartLoading(const QUrl& url) { QUrl real_url = service_->GetStreamingUrlFromSongId(file_id); LoadResult::Type type = real_url.isValid() ? LoadResult::TrackAvailable : LoadResult::NoMoreTracks; - return LoadResult(url, type, real_url); + LoadResult res(url, type, real_url); + res.auth_header_ = service_->client()->GetAuthHeader(); + return res; }