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