PDA

View Full Version : Error in retrieving data from facebook to qt gui application



vinayaka
16th September 2011, 09:04
hai,

This is the code for gui application to connect FB.Using this ap we can retrieve the names of our friends.



#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QtGlobal>
#include <QDebug>
#include <QMessageBox>

#include "fbrequest.h"
#include "fberror.h"

static QString UserId;

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
iLoginDialog ( NULL )
{
ui->setupUi(this);

iFBSession = FBSession::sessionForApplication("xxxxxxxxxxx","xxxxxxxxxxx", QString());
connect (iFBSession,SIGNAL(sessionDidLogin(FBUID)), this, SLOT(sessionDidLogin(FBUID)));
connect (iFBSession, SIGNAL(sessionDidLogout()), this, SLOT(sessionDidLogout()));
}

MainWindow::~MainWindow()
{
delete iFBSession;
delete ui;
}

void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}

void MainWindow::on_pushButton_clicked()
{
if (iFBSession->resume() == false)
{
iLoginDialog = new FBLoginDialog();
iLoginDialog->show();
}
}

void MainWindow::sessionDidLogin(FBUID aUid)
{
QMessageBox msgbox;
UserId = QString::number(aUid,10);
QString msg ("Logged in sucessfully, your FBUID is " + UserId);
msgbox.setText(msg);
msgbox.exec();

if (iLoginDialog)
{
iLoginDialog->deleteLater();;
iLoginDialog = NULL;
}
}

void MainWindow::sessionDidLogout()
{
QMessageBox msgbox;
msgbox.setText("logged out");
msgbox.exec();
}

void MainWindow::on_pushButton_2_clicked()
{
FBRequest* request = FBRequest::request();
Dictionary params;
QString query = "select name,pic_big, status,birthday_date, timezone from user where uid in (select uid2 from friend where uid1==" +UserId+ ")";
params["query"] = query;
connect (request, SIGNAL(requestDidLoad(QVariant)), this, SLOT(requestDidLoad(QVariant)));
connect (request, SIGNAL(requestFailedWithFacebookError(FBError)), this, SLOT(requestFailedWithFacebookError(FBError)));
request->call("facebook.fql.query",params);

}

void MainWindow::requestFailedWithFacebookError ( const FBError& aError )
{
qDebug() << "facebook error is " << aError.code() << " - " << aError.description();
}

void MainWindow::requestDidLoad(const QVariant& aContainer)
{
if (aContainer.type() == QVariant::List)
{
QVariantList list = aContainer.toList();

for (int i = 0 ; i < list.count(); i ++)
{
QVariantHash dictionary = list.at(i).toHash();
QHashIterator<QString, QVariant> iterator(dictionary);

QString name = dictionary.value("name").toString();
ui->listWidget->addItem(name);


}

sender()->deleteLater();
}
}



void MainWindow::on_buttonForget_clicked()
{
iFBSession->logout();
}




After login the FB Errors show like this:

Starting D:\WS\qfacebookconnect-qfacebookconnect\debug\sample.exe...
Load started: QUrl( "" )
Loading url: "http://www.facebook.com/login.php?api_key=xxxxxxxxxx&next=fbconnect://success&connect_display=touch&fbconnect=1"
Load successfull for: QUrl( "http://m.facebook.com/login.php?api_key=xxxxxxxx&next=http://www.facebook.com/connect/uiserver.php?app_id=xxxxxxx&next=fbconnect%3A%2F%2Fsuccess&display=touch&return_session=0&fbconnect=1&canvas=0&legacy_return=1&method=permissions.request&connect_display=touch&fbconnect=1&app_id=xxxxxxxxx&skip_api_login=1&refsrc=http://www.facebook.com/login.php&_rdr" )
Load started: QUrl( "http://m.facebook.com/login.php?api_key=xxxxxxxxx&next=http://www.facebook.com/connect/uiserver.php?app_id=xxxxxxxx&next=fbconnect%3A%2F%2Fsuccess&display=touch&return_session=0&fbconnect=1&canvas=0&legacy_return=1&method=permissions.request&connect_display=touch&fbconnect=1&app_id=xxxxxx&skip_api_login=1&refsrc=http://www.facebook.com/login.php&_rdr" )
QSslSocket: cannot call unresolved function SSLv3_client_method
QSslSocket: cannot call unresolved function SSL_CTX_new
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function ERR_get_error
Load un successfull for: QUrl( "http://m.facebook.com/login.php?api_key=xxxx&next=http://www.facebook.com/connect/uiserver.php?app_id=xxxxx&next=fbconnect%3A%2F%2Fsuccess&display=touch&return_session=0&fbconnect=1&canvas=0&legacy_return=1&method=permissions.request&connect_display=touch&fbconnect=1&app_id=xxxxxxx&skip_api_login=1&refsrc=http://www.facebook.com/login.php&_rdr" )
1
facebook error is 89 - "Parser error: unexpected ')' at position 112."
facebook error is 89 - "Parser error: unexpected ')' at position 112."
facebook error is 89 - "Parser error: unexpected ')' at position 112."
facebook error is 89 - "Parser error: unexpected ')' at position 112."




This is the .pro file

#-------------------------------------------------
#
# Project created by QtCreator 2009-11-20T00:54:21
#
#-------------------------------------------------

QT += network webkit xml

TARGET = sample
TEMPLATE = app
DESTDIR = ../debug

SOURCES += main.cpp\
mainwindow.cpp

HEADERS += mainwindow.h

FORMS += mainwindow.ui


INCLUDEPATH = ../inc/
win32:LIBS += ../debug/qfacebookconnect.lib
unix:LIBS += ../debug/libqfacebookconnect.so

symbian: {
TARGET.CAPABILITY = NetworkServices # Symbian specific, we just need network access
TARGET.UID3 = 0xA89FA522 # Symbian specific, unprotected uid3 from symbiansigned.com

INCLUDEPATH += /epoc32/include/stdapis # this seems to be a bug.
LIBS += -lqfacebookconnect

libqfacebookconnect.sources = qfacebookconnect.dll
libqfacebookconnect.path = \sys\bin
DEPLOYMENT += libqfacebookconnect
}

ICON = gfx/fb.svg


qfacebookconnect.lib is pasted in the Debug folder

Can you help me to run this project successfully

stampede
16th September 2011, 09:15
I think you should ask the guy who created the FBRequest class.