summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llpanelpeople.cpp39
-rw-r--r--indra/newview/llpanelpeople.h3
-rw-r--r--indra/newview/llviewerregion.cpp2
3 files changed, 32 insertions, 12 deletions
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
index b33574bcc3..519868612a 100644
--- a/indra/newview/llpanelpeople.cpp
+++ b/indra/newview/llpanelpeople.cpp
@@ -81,7 +81,7 @@ static const std::string FBCTEST_TAB_NAME = "fbctest_panel";
static const std::string COLLAPSED_BY_USER = "collapsed_by_user";
static const std::string FBC_SERVICES_URL = "https://pdp15.lindenlab.com/fbc";
-static const std::string FBC_SERVICES_REDIRECT_URI = "https://pdp15.lindenlab.com/fbc/redirect";
+static const std::string FBC_SERVICES_REDIRECT_URI = "https://pdp15.lindenlab.com/redirect";
/** Comparator for comparing avatar items by last interaction date */
class LLAvatarItemRecentComparator : public LLAvatarItemComparator
@@ -865,12 +865,12 @@ void LLPanelPeople::updateFbcTestList()
std::string url = mFbcTestBrowserHandle.get()->getTitle();
// if the browser has redirected from facebook
- if (url.find(FBC_SERVICES_REDIRECT_URI) == 0)
+ if (url.find(getFacebookRedirectURL()) == 0)
{
// find the auth code in the url
std::string begin_string = "code=";
std::string end_string = "#";
- size_t begin_index = begin_string.length() + url.find(begin_string, FBC_SERVICES_REDIRECT_URI.length());
+ size_t begin_index = begin_string.length() + url.find(begin_string, getFacebookRedirectURL().length());
size_t end_index = url.find(end_string, begin_index);
// extract the auth code from the url
@@ -1695,7 +1695,7 @@ public:
else if (mShowLoginIfNotConnected)
{
LLFloaterWebContent::Params p;
- p.url("https://www.facebook.com/dialog/oauth?client_id=565771023434202&redirect_uri=" + FBC_SERVICES_REDIRECT_URI);
+ p.url("https://www.facebook.com/dialog/oauth?client_id=565771023434202&redirect_uri=" + mPanelPeople->getFacebookRedirectURL());
mPanelPeople->openFacebookWeb(p);
}
}
@@ -1739,14 +1739,14 @@ public:
void LLPanelPeople::loadFacebookFriends()
{
- LLHTTPClient::get(FBC_SERVICES_URL + "/agent/" + gAgentID.asString() + "/friends", new FacebookFriendsResponder(this));
+ LLHTTPClient::get(getFacebookConnectURL("/friends"), new FacebookFriendsResponder(this));
}
void LLPanelPeople::tryToReconnectToFacebook()
{
if (!mConnectedToFbc)
{
- LLHTTPClient::get(FBC_SERVICES_URL + "/agent/" + gAgentID.asString(), new FacebookConnectedResponder(this, false));
+ LLHTTPClient::get(getFacebookConnectURL(), new FacebookConnectedResponder(this, false));
}
}
@@ -1755,17 +1755,32 @@ void LLPanelPeople::connectToFacebook(const std::string& auth_code)
LLSD body;
body["agent_id"] = gAgentID.asString();
body["code"] = auth_code;
- body["redirect_uri"] = FBC_SERVICES_REDIRECT_URI;
- LLHTTPClient::post(FBC_SERVICES_URL + "/agent/" + gAgentID.asString() + "/connect", body, new FacebookConnectResponder(this));
+ body["redirect_uri"] = getFacebookRedirectURL();
+ LLHTTPClient::post(getFacebookConnectURL("/connect"), body, new FacebookConnectResponder(this));
}
void LLPanelPeople::disconnectFromFacebook()
{
LLSD body;
body["agent_id"] = gAgentID.asString();
- LLHTTPClient::post(FBC_SERVICES_URL + "/agent/" + gAgentID.asString() + "/disconnect", body, new FacebookDisconnectResponder(this));
+ LLHTTPClient::post(getFacebookConnectURL("/disconnect"), body, new FacebookDisconnectResponder(this));
}
+std::string LLPanelPeople::getFacebookConnectURL(const std::string& route)
+{
+ static std::string sFacebookConnectUrl = gAgent.getRegion()->getCapability("FacebookConnect");
+ std::string url = sFacebookConnectUrl + route;
+ llinfos << url << llendl;
+ return url;
+}
+
+std::string LLPanelPeople::getFacebookRedirectURL()
+{
+ static std::string sFacebookRedirectUrl = gAgent.getRegion()->getCapability("FacebookRedirect");
+ llinfos << sFacebookRedirectUrl << llendl;
+ return sFacebookRedirectUrl;
+}
+
void LLPanelPeople::onLoginFbcButtonClicked()
{
if (mConnectedToFbc)
@@ -1774,21 +1789,21 @@ void LLPanelPeople::onLoginFbcButtonClicked()
}
else
{
- LLHTTPClient::get(FBC_SERVICES_URL + "/agent/" + gAgentID.asString(), new FacebookConnectedResponder(this, true));
+ LLHTTPClient::get(getFacebookConnectURL(), new FacebookConnectedResponder(this, true));
}
}
void LLPanelPeople::onFacebookAppRequestClicked()
{
LLFloaterWebContent::Params p;
- p.url("http://www.facebook.com/dialog/apprequests?app_id=565771023434202&message=Test&redirect_uri=" + FBC_SERVICES_URL);
+ p.url("http://www.facebook.com/dialog/apprequests?app_id=565771023434202&message=Test&redirect_uri=" + getFacebookRedirectURL());
openFacebookWeb(p);
}
void LLPanelPeople::onFacebookAppSendClicked()
{
LLFloaterWebContent::Params p;
- p.url("https://www.facebook.com/dialog/send?app_id=565771023434202&name=Join Second Life!&link=https://join.secondlife.com&redirect_uri=" + FBC_SERVICES_URL);
+ p.url("https://www.facebook.com/dialog/send?app_id=565771023434202&name=Join Second Life!&link=https://join.secondlife.com&redirect_uri=" + getFacebookRedirectURL());
openFacebookWeb(p);
}
diff --git a/indra/newview/llpanelpeople.h b/indra/newview/llpanelpeople.h
index 76207108cd..e9581bb5f3 100644
--- a/indra/newview/llpanelpeople.h
+++ b/indra/newview/llpanelpeople.h
@@ -66,6 +66,9 @@ public:
void connectToFacebook(const std::string& auth_code);
void disconnectFromFacebook();
+ std::string getFacebookConnectURL(const std::string& route = "");
+ std::string getFacebookRedirectURL();
+
bool mConnectedToFbc;
bool mTryToConnectToFbc;
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index e4234a538d..5b3b11ae2d 100644
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1522,6 +1522,8 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
capabilityNames.append("EnvironmentSettings");
capabilityNames.append("EstateChangeInfo");
capabilityNames.append("EventQueueGet");
+ capabilityNames.append("FacebookConnect");
+ //capabilityNames.append("FacebookRedirect");
if (gSavedSettings.getBOOL("UseHTTPInventory"))
{