example/TwitterAuthApp/src/requestSP.cpp
author cgandhi
Tue, 12 Oct 2010 15:23:52 +0530
changeset 27 b3e1347ac96a
parent 26 83d6a149c755
permissions -rw-r--r--
Updating the information for test applications and results.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     1
/**
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     2
* Copyright (c) 2010 Sasken Communication Technologies Ltd.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     3
* All rights reserved.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     4
* This component and the accompanying materials are made available
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     5
* under the terms of the "{License}"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     6
* which accompanies  this distribution, and is available
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     7
* at the URL "{LicenseUrl}".
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     8
*
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
     9
* Initial Contributors:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    10
* Narasimhulu Kavadapu, Sasken Communication Technologies Ltd - Initial contribution
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    11
*
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    12
* Contributors:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    13
* Siddhartha Chandra, Sasken Communication Technologies Ltd
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    14
* Description:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    15
* class to handle calls to rest Server API's
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    16
*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    17
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    18
#include "requestSP.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    19
#include "sessionSP.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    20
#include "xmlParser.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    21
#include "errorCodes.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    22
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    23
#include <QNetworkRequest>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    24
#include <QXmlSimpleReader>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    25
#include <QXmlInputSource>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    26
#include <QCryptographicHash>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    27
#include <QtAlgorithms>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    28
#include <QDebug>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    29
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    30
#include "hash.h"
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    31
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    32
#include <keys.h>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    33
#include <qnetworkproxy.h>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    34
#include <QSslConfiguration>
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    35
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    36
// global
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    37
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    38
static const QString kAPIVersion = "1.0";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    39
static const QString kAPIFormat = "XML";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    40
static const QString kStringBoundary = "3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    41
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    42
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    43
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    44
static bool caseInsensitiveLessThan(const QString &s1, const QString &s2)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    45
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    46
    return s1.toLower() < s2.toLower();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    47
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    48
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    49
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    50
// Static class functions
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    51
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    52
FBRequest* FBRequest::request()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    53
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    54
    return FBRequest::requestWithSession(FBSession::session());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    55
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    56
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    57
FBRequest* FBRequest::requestWithSession (FBSession* aSession)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    58
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    59
    FBRequest* request = new FBRequest(aSession);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    60
    return request;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    61
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    62
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    63
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    64
// instance public functions
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    65
FBRequest::FBRequest(FBSession* aSession) : iSession ( aSession ), iNetworkAccessManager ( this )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    66
{}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    67
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    68
const QDateTime& FBRequest::timeStamp() const
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    69
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    70
    return iTimestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    71
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    72
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    73
void FBRequest::connect()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    74
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    75
	qDebug()<<"Inside FBRequest::connect()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    76
    //emit requestLoading();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    77
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    78
    /*QString url ;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    79
    url = iUrl;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    80
    qDebug()<<"url"<<url;*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    81
   
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    82
    QNetworkRequest request;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    83
   
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    84
    QSslConfiguration config( QSslConfiguration::defaultConfiguration() );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    85
   	request.setSslConfiguration( config );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    86
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    87
   	//request.setUrl(QUrl(url));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    88
   	QUrl myurl = kRequestTokenUrl;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    89
    request.setUrl(myurl);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    90
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    91
    /* from the Qt docs on QNetworkAccessManager:
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    92
       QNetworkAccessManager by default does not have a set cache.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    93
       Qt provides a simple disk cache, QNetworkDiskCache, which can be used.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    94
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    95
       However we will not use it.*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    96
    QString Authorization = "OAuth oauth_nonce=\"" + iSession->stroauth_nonce + "\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"" + iSession->stroauth_timestamp + "\", oauth_consumer_key=\"" + kConsumerKey + "\", oauth_signature=\"" + iSession->stroauth_signature.toAscii().toPercentEncoding() + "\", oauth_version=\"1.0\"";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    97
	qDebug()<<"Authorization: "<<Authorization;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    98
	QByteArray auth = Authorization.toUtf8();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
    99
	qDebug()<<"auth:"<<auth;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   100
	request.setRawHeader("Authorization",auth);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   101
	const QString contentType = "multipart/form-data; boundary=" + kStringBoundary;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   102
	request.setHeader (QNetworkRequest::ContentTypeHeader, contentType); 
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   103
	//request.setRawHeader("User-Agent", kUserAgent);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   104
    //request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   105
   // request.setAttribute(QNetworkRequest::CacheSaveControlAttribute, false);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   106
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   107
    //iTimestamp = QDateTime::currentDateTime();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   108
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   109
    //if (iMethod.length())
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   110
    //{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   111
      //  const QString contentType = "multipart/form-data; boundary=" + kStringBoundary;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   112
     //   request.setRawHeader("Content-Type", contentType.toUtf8());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   113
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   114
        /* connect all signals from iNetWorkAccessManager to this */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   115
        QByteArray postBody ;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   116
        generatePostBody (postBody);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   117
        postBody = "";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   118
        pbar = new progressbar;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   119
        pbar->show();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   120
        proxysettings();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   121
        QNetworkReply* reply = iNetworkAccessManager.post(request, postBody);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   122
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   123
        QObject::connect(reply, SIGNAL(finished()),  this, SLOT(networkReplyFinished()));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   124
        QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   125
                         this, SLOT(networkReplyError(QNetworkReply::NetworkError)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   126
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   127
    //}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   128
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   129
void FBRequest::proxysettings()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   130
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   131
#ifdef EMULATORTESTING
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   132
	qDebug()<<"proxysettings";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   133
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   134
	// Reading the keys, CSM Stubbed - START
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   135
	QFile file("c:\\data\\DoNotShare.txt");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   136
	if (!file.open(QIODevice::ReadOnly))
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   137
		{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   138
		qDebug()<<"File to read the windows username and password could not be opened, returning!!!";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   139
		return;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   140
		}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   141
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   142
	QByteArray arr = file.readAll();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   143
	QList<QByteArray> list = arr.split(' ');
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   144
	file.close();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   145
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   146
	QString username(list[0]);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   147
	QString password(list[1]);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   148
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   149
    QString httpProxy = "10.1.0.214";//ipwproxy.sasken.com
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   150
    QString httpPort = "3128";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   151
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   152
    QString httpUser =username;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   153
    QString httpPass =password;/* This could be taken thru an QDialog implmentation to remove the Hard coding */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   154
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   155
    /*==Classes used from Network Module==*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   156
    QNetworkProxy proxy;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   157
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   158
    proxy.setType(QNetworkProxy::HttpProxy);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   159
    proxy.setHostName(httpProxy);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   160
    proxy.setPort(httpPort.toInt());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   161
    proxy.setUser(httpUser);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   162
    proxy.setPassword(httpPass);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   163
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   164
    QNetworkProxy::setApplicationProxy(proxy);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   165
#endif
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   166
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   167
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   168
// instance private functions
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   169
QString FBRequest::sha1()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   170
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   171
	qDebug()<<"Insha1";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   172
	CSHA1* sha=CSHA1::NewL();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   173
	TBuf8<100> keyVal;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   174
	keyVal.Copy(_L8("sasken"));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   175
	CHMAC* hmac=CHMAC::NewL(keyVal,sha);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   176
	//TBuf8<1024> baseString;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   177
	TPtrC8 hashedSig(hmac->Hash(_L8("sasken")));	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   178
	TBuf8<1024>bufr;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   179
		bufr.Copy(hashedSig);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   180
		QByteArray digest = QByteArray::fromRawData((char*)bufr.Ptr(),bufr.Length());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   181
		qDebug()<<"digest.toHex();"<<digest.toHex();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   182
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   183
	if(hmac)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   184
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   185
	    delete hmac;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   186
	    hmac=NULL;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   187
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   188
/*	TBuf8<1024>bufr;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   189
	bufr.Copy(hashedSig);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   190
	QByteArray digest = QByteArray::fromRawData((char*)bufr.Ptr(),bufr.Length());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   191
	qDebug()<<"digest.toHex();"<<digest.toHex();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   192
	qDebug()<<"digest"<<digest;*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   193
	return digest.toHex();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   194
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   195
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   196
bool FBRequest::isSpecialMethod() const {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   197
    return ( iMethod.compare("facebook.auth.getSession", Qt::CaseInsensitive) == 0
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   198
             ||   iMethod.compare("facebook.auth.createToken", Qt::CaseInsensitive) == 0 );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   199
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   200
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   201
QString FBRequest::urlForMethod (const QString& aMethod) const {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   202
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   203
	Q_UNUSED(aMethod)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   204
	return iSession->apiURL();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   205
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   206
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   207
QString FBRequest::generateGetURL() const
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   208
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   209
	qDebug()<<"Inside FBRequest::generateGetURL()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   210
    const QUrl url(iUrl);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   211
    const QString queryPrefix = url.hasQuery() ? "&" : "?";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   212
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   213
    QStringList pairs;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   214
    DictionaryIterator i(iParams);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   215
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   216
    while (i.hasNext()) {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   217
        i.next();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   218
        pairs << i.key().toUtf8() + "=" + i.value().toUtf8();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   219
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   220
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   221
    return iUrl + queryPrefix + pairs.join("&");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   222
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   223
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   224
QString FBRequest::generateCallId() const {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   225
    QDateTime dateTime = QDateTime::currentDateTime();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   226
    uint secs = dateTime.toTime_t();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   227
    QString result = QString::number(secs, 10);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   228
    return result;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   229
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   230
/*
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   231
 *   
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   232
  httpMethod + "&" +
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   233
  url_encode(  base_uri ) + "&" +
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   234
  sorted_query_params.each  { | k, v |
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   235
      url_encode ( k ) + "%3D" +
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   236
      url_encode ( v )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   237
  }.join("%26")
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   238
 * 
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   239
 */
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   240
QString FBRequest::generateSig(Dictionary Params)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   241
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   242
	QString joined;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   243
	joined = "POST";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   244
	joined += "&";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   245
	joined += kRequestTokenUrl.toAscii().toPercentEncoding() + "&";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   246
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   247
	QStringList keys = Params.keys();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   248
	qSort(keys.begin(), keys.end(), caseInsensitiveLessThan);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   249
	QListIterator<QString> i(keys);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   250
	int count = 0;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   251
	while (i.hasNext())
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   252
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   253
		count++;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   254
		if(count > 1)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   255
			joined.append("%26");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   256
		const QString key = i.next();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   257
		joined.append(key.toAscii().toPercentEncoding());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   258
		joined.append("%3D");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   259
		joined.append(Params.value(key).toAscii().toPercentEncoding());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   260
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   261
	qDebug()<<"joined"<<joined;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   262
	//uncomment for testing key
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   263
	//joined = "POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token&oauth_callback%3Dhttp%253A%252F%252Flocalhost%253A3005%252Fthe_dance%252Fprocess_callback%253Fservice_provider_id%253D11%26oauth_consumer_key%3DGDdmIQH6jhtmLUypg82g%26oauth_nonce%3DQP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1272323042%26oauth_version%3D1.0";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   264
	TBuf<1024> sid(joined.utf16());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   265
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   266
	QByteArray digest1 = QByteArray::fromRawData((char*)sid.Ptr(),sid.Length());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   267
	qDebug()<<"digest1: "<<digest1;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   268
	TBuf8<1024>buff;//(sid);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   269
	buff.Copy(sid);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   270
	QByteArray digest2 = QByteArray::fromRawData((char*)buff.Ptr(),buff.Length());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   271
	qDebug()<<"digest2: "<<digest2;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   272
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   273
	//signature
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   274
	CSHA1* sha=CSHA1::NewL();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   275
	//uncomment for testing key
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   276
	//QByteArray key= "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   277
	QByteArray key= kConsumerSecret.toUtf8();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   278
	key = key.toPercentEncoding();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   279
	key.append("&");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   280
	key.append(iSession->stroauth_TokenSecret.toUtf8().toPercentEncoding());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   281
	qDebug()<<"Key:"<<key;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   282
	TPtrC8 myDataDescriptor( reinterpret_cast<const TText8*> (key.constData()),key.size());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   283
	 
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   284
	//Take a copy of the data
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   285
	HBufC8* buffer12 = HBufC8::New(myDataDescriptor.Length());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   286
	 
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   287
	Q_CHECK_PTR(buffer12);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   288
	buffer12->Des().Copy(myDataDescriptor  );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   289
	TPtr8 tptr = buffer12->Des();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   290
	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   291
	TBuf8<100> keyVal;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   292
	keyVal.Copy(tptr);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   293
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   294
	CHMAC* hmac=CHMAC::NewL(keyVal,sha);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   295
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   296
	TPtrC8 hashedSig(hmac->Hash(buff));	
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   297
	TBuf8<1024>bufr;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   298
		bufr.Copy(hashedSig);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   299
		QByteArray digest = QByteArray::fromRawData((char*)bufr.Ptr(),bufr.Length());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   300
		qDebug()<<"digest.toHex() "<<digest.toHex();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   301
		QByteArray base64 = digest.toBase64();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   302
		qDebug()<<"Base64 Encoded  "<<base64;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   303
	if(hmac)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   304
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   305
		delete hmac;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   306
		hmac=NULL;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   307
	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   308
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   309
	return base64;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   310
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   311
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   312
void FBRequest::generatePostBody( QByteArray& body )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   313
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   314
	qDebug()<<"Inside FBRequest::generatePostBody()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   315
    QString endLine = "\r\n--" + kStringBoundary + "\r\n";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   316
    body.append( "--" + kStringBoundary.toUtf8() + "\r\n" ) ;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   317
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   318
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   319
    DictionaryIterator i (iParams);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   320
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   321
    while (i.hasNext())
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   322
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   323
        i.next();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   324
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   325
        body.append("Content-Disposition: form-data; name=\"" + i.key().toUtf8() + "\"\r\n\r\n" );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   326
        body.append(i.value().toUtf8());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   327
        body.append(endLine.toUtf8());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   328
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   329
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   330
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   331
    if (iDataParam.size())
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   332
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   333
        if (iDataParamPicture)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   334
        {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   335
            body.append("Content-Disposition: form-data; filename=\"photo\"\r\n" );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   336
            body.append("Content-Type: image/png\r\n\r\n" );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   337
        }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   338
        else
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   339
        {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   340
            body.append("Content-Disposition: form-data; filename=\"data\"\r\n");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   341
            body.append("Content-Type: content/unknown\r\n\r\n");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   342
        }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   343
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   344
        body.append(iDataParam);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   345
        body.append(endLine.toUtf8());
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   346
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   347
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   348
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   349
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   350
void FBRequest::handleResponseData( const QByteArray& aResponseData )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   351
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   352
	qDebug()<<"Inside FBRequest::handleResponseData()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   353
    FBError error;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   354
    QVariant result =  parseXMLResponse( aResponseData, error);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   355
    if (error.code() != 0)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   356
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   357
        emit requestFailedWithFacebookError(error);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   358
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   359
    else
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   360
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   361
        emit requestDidLoad(result);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   362
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   363
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   364
    delete pbar;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   365
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   366
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   367
void FBRequest::post( const QString& aUrl, const Dictionary& aParams)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   368
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   369
	qDebug()<<"Inside FBRequest::post()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   370
    iUrl = aUrl;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   371
    iParams = aParams;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   372
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   373
    iSession->send(this);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   374
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   375
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   376
void FBRequest::cancel()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   377
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   378
	qDebug()<<"Inside FBRequest::cancel()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   379
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   380
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   381
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   382
void FBRequest::call (const QString& aMethod, const Dictionary& aParams)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   383
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   384
    QByteArray dataParams;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   385
    callWithDataParams(aMethod, aParams, dataParams, false);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   386
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   387
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   388
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   389
void FBRequest::callWithDataParams (const QString& aMethod, const Dictionary& aParams, const QByteArray& aDataParam, bool aDataParamPicture)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   390
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   391
	Q_UNUSED(aParams)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   392
	Q_UNUSED(aDataParam)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   393
	Q_UNUSED(aDataParamPicture)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   394
    iUrl = urlForMethod(aMethod);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   395
    iUrl +=  aMethod;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   396
    qDebug()<<"URL inside call with Data Params"<<iUrl;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   397
    //iMethod = aMethod;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   398
    //iParams = aParams;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   399
  /*  iParams["oauth_nonce"] = iSession->stroauth_nonce;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   400
    iParams["oauth_signature_method"] = "HMAC-SHA1";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   401
    iParams["oauth_timestamp"] = iSession->stroauth_timestamp;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   402
    iParams["oauth_consumer_key"] = kConsumerKey;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   403
    iParams["sig"]=iSession->stroauth_signature;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   404
    iParams["oauth_version"] = "1.0";*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   405
    //iDataParam = aDataParam;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   406
   // iDataParamPicture = aDataParamPicture;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   407
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   408
  //  iParams["method"] = iMethod;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   409
  //  iParams["api_key"] = iSession->apiKey();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   410
  //  iParams["v"] = kAPIVersion;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   411
  //  iParams["format"] = kAPIFormat;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   412
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   413
   /* if (!isSpecialMethod())
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   414
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   415
        iParams["session_key"] = iSession->sessionKey();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   416
        iParams["call_id"] = generateCallId();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   417
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   418
        if (iSession->sessionSecret().length())
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   419
        {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   420
            iParams["ss"] = "1";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   421
        }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   422
    }*/
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   423
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   424
    // XXX: workaround what seems to be a Qt bug with the extras-devel libraries.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   425
   // QString signature = generateSig(iParams);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   426
   // iParams["sig"] = signature;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   427
    // XXX: end workaround.
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   428
    
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   429
    iSession->send(this);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   430
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   431
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   432
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   433
QVariant FBRequest::parseXMLResponse ( const QByteArray& aResponseData, FBError& aError)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   434
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   435
	qDebug()<<"Inside FBRequest::handleResponseData()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   436
    QXmlInputSource input;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   437
    input.setData(aResponseData);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   438
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   439
    FBXMLHandler handler;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   440
    QXmlSimpleReader parser;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   441
    parser.setContentHandler(&handler);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   442
    bool result = parser.parse(&input);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   443
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   444
    QVariant rootObject = handler.rootObject();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   445
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   446
    if (handler.parseError() || !result)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   447
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   448
        aError.setCode( FBRESPONSE_PARSE_ERROR );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   449
        aError.setDescription("parser was unable to parse the xml response from facebook server.");
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   450
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   451
        return QVariant();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   452
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   453
    else if (handler.rootName().compare("error_response")==0)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   454
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   455
        QVariantHash errorDict =  rootObject.toHash();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   456
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   457
        bool result;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   458
        int errorCode = errorDict.value("error_code").toInt(&result);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   459
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   460
        aError.setCode( errorCode );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   461
        aError.setDescription( errorDict.value("error_msg").toString() );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   462
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   463
        return rootObject;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   464
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   465
    else
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   466
    {
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   467
        return rootObject;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   468
    }
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   469
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   470
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   471
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   472
///////////////////////////////////////////////////////////////////////////////////////////////////
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   473
// instance provate slots
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   474
void FBRequest::networkReplyError ( QNetworkReply::NetworkError aCode )
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   475
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   476
    emit requestFailedWithNetworkError(aCode );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   477
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   478
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   479
void FBRequest::networkReplyFinished ()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   480
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   481
qDebug()<<"Inside FBRequest::networkReplyFinished()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   482
    QNetworkReply* reply = static_cast<QNetworkReply*> ( sender() );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   483
    QByteArray responseData = reply->readAll();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   484
    if(responseData != "")
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   485
    	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   486
			qDebug()<<"response data:"<<responseData;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   487
			QList<QByteArray>MyString = responseData.split('&');
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   488
			QList<QByteArray>token = MyString[0].split('=');
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   489
			qDebug()<<token.at(1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   490
			iSession->stroauth_Token=token.at(1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   491
			QList<QByteArray>token_secret = MyString[1].split('=');
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   492
			qDebug()<<token_secret.at(1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   493
			iSession->stroauth_TokenSecret=token_secret.at(1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   494
		 
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   495
			qDebug()<<"iSession->stroauth_Token"<<iSession->stroauth_Token;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   496
			if(iSession->stroauth_Token != "")
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   497
			{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   498
				emit LoadLoginPage();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   499
				qDebug()<<"Signal:LoadLoginPage() is emitted";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   500
			}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   501
    	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   502
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   503
void FBRequest::networkReplyFinishedNew ()
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   504
{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   505
qDebug()<<"Inside FBRequest::networkReplyFinishedNew()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   506
    QNetworkReply* reply = static_cast<QNetworkReply*> ( sender() );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   507
    QByteArray responseData = reply->readAll();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   508
    if(responseData != "")
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   509
    	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   510
			qDebug()<<"response data:"<<responseData;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   511
			QList<QByteArray>MyString = responseData.split('&');
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   512
			QList<QByteArray>token = MyString[0].split('=');
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   513
			qDebug()<<token.at(1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   514
			iSession->stroauth_Token=token.at(1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   515
			QList<QByteArray>token_secret = MyString[1].split('=');
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   516
			qDebug()<<token_secret.at(1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   517
			iSession->stroauth_TokenSecret=token_secret.at(1);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   518
		 
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   519
			qDebug()<<"iSession->stroauth_Token"<<iSession->stroauth_Token;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   520
			qDebug()<<"iSession->stroauth_TokenSecret"<<iSession->stroauth_TokenSecret;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   521
			iSession->save();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   522
    	}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   523
}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   524
void FBRequest::connect_req(QString uri)
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   525
	{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   526
		qDebug()<<"Inside FBRequest::connect_req()";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   527
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   528
	    QNetworkRequest request;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   529
	   
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   530
	    QSslConfiguration config( QSslConfiguration::defaultConfiguration() );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   531
	   	request.setSslConfiguration( config );
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   532
	   	QUrl myurl;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   533
	   	QString Authorization;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   534
	   	if(uri == "/request_token")
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   535
	   		{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   536
				myurl = kRequestTokenUrl;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   537
				Authorization = "OAuth oauth_nonce=\"" + iSession->stroauth_nonce + "\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"" + iSession->stroauth_timestamp + "\", oauth_consumer_key=\"" + kConsumerKey + "\", oauth_signature=\"" + iSession->stroauth_signature.toAscii().toPercentEncoding() + "\", oauth_version=\"1.0\"";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   538
	   		}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   539
	   	else
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   540
	   		{
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   541
				myurl = kAccessTokenUrl;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   542
				Authorization = "OAuth oauth_nonce=\"" + iSession->stroauth_nonce + "\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"" + iSession->stroauth_timestamp + "\", oauth_consumer_key=\"" + kConsumerKey + "\", oauth_token=\"" + iSession->stroauth_Token + "\", oauth_verifier=\"" + iSession->stroauth_verifier + "\", oauth_signature=\"" + iSession->stroauth_signature.toAscii().toPercentEncoding() + "\", oauth_version=\"1.0\"";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   543
	   		}
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   544
	    request.setUrl(myurl);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   545
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   546
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   547
	    qDebug()<<"myurl:"<<myurl;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   548
		qDebug()<<"Authorization: "<<Authorization;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   549
		QByteArray auth = Authorization.toUtf8();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   550
		qDebug()<<"auth:"<<auth;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   551
		request.setRawHeader("Authorization",auth);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   552
		const QString contentType = "multipart/form-data; boundary=" + kStringBoundary;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   553
		request.setHeader (QNetworkRequest::ContentTypeHeader, contentType); 
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   554
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   555
		QByteArray postBody ;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   556
		generatePostBody (postBody);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   557
		postBody = "";
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   558
		pbar = new progressbar;
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   559
		pbar->show();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   560
		proxysettings();
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   561
		QNetworkReply* reply = iNetworkAccessManager.post(request, postBody);
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   562
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   563
		QObject::connect(reply, SIGNAL(finished()),  this, SLOT(networkReplyFinishedNew()));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   564
		QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),this, SLOT(networkReplyError(QNetworkReply::NetworkError)));
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   565
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   566
   
83d6a149c755 Submitting following changes -
cgandhi
parents:
diff changeset
   567
	}