example/LinkedInAuthApp/src/requestSP.cpp
author cgandhi
Mon, 11 Oct 2010 21:59:54 +0530
changeset 26 83d6a149c755
permissions -rw-r--r--
Submitting following changes - AuthApps for Last.fm and Twitter added API for checking ServiceAuthorization added for SMFCredMgrClient API added for forcefully removing credential details from SMFCredMgr Extra argument checks in SMfClient APIs APIs for service login and logout from SMFClient Redundant members removed from SmfServerSymbian DSM bug fixes Test Apps included
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
}