您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > facebook设计模板
FacebookAppsBasicIntegratewebapplicationswithcoreFacebookExperienceExample:gettinguserinformationandpostingtowallBenefit?Apowerfulandcosteffectivemeasuresforone'sproduct/servicetogainexposure(i.e.userengagement,viraleffect)3GettingStartedStep1:RegisteringapplicationStep2:Setting-upapplicationStep3:AuthorizingapplicationStep4:AccessinguserinformationStep5:InteractingwithFacebookStep1:RegisteringApplicationAddFacebookdevelopapps@(Mobilephoneorcreditcard)Createyourapplication!GetauniqueapplicationIDandsecretHerewegosource::iFrameFBMLTinyscreensource::Scalabilityinthelongrun(i.e.easytomovetoFacebookConnectwebsite)LetyouuseJavascript,HTML,CSS(Ajaxanyone?)EasytodebugFBMLBenefits:EasytoaccessFacebookelementsFasterloadsNote:FBMLmightbedeprecated9Step2:Setting-upApplication-CanvasSetyourcanvasname(Veryimportant!)EasytorememberBrandingperspectiveExample::!!DevelopmentenvironmentassumptionJavaStruts2TomcatmySqlMosttutorialsandexamplesonthewebisinPHPStep3:AuthorizingapplicationIsitrequired?No!BUTitisnecessarytocreateapersonalizeduserexperience(i.e.retrieveuseremailaddress,posttowall)Appcreatorcontrolsthedegreeofpermissionsrequiredduringauthorization13Tellmehow?CallthefollowingURIonyourdefaultindexpageuponload=YOUR_APP_ID&redirect_uri=YOUR_URLOr,appendspecificscopeparameters=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=email,read_stream14Addthisapplicationsource:=text/javascript!--%Stringuri==12345678910;Stringperms=email,user_birthday;Stringurl==+perms+&client_id=+appId;16Samplecode-Part2if(uri!=null){try{uri=java.net.URLEncoder.encode(uri,UTF-8);}catch(java.io.UnsupportedEncodingExceptione){}}url=url+&redirect_uri=+uri;out.println(varurl=\+url+\;);%if(url!=null){window.open(url,_parent,);}--/script17What’snext?Havetoknowfact!Facebookpassesuserinformationintheformofsigned_requestparametertothecanvasURLThissigned_requestparameterisabase64urlencodedJSONobjectHuh?Simplysaying,signed_requesthastobedecodedtobemeaningful!18SuperSecretsource::=null;StringsignedRequest=request.getParameter(signed_request);if(signedRequest==null||signedRequest.length()==0){log.error(AUTHERROR:Facebooksignedrequestismissing);returnERROR;}intcount=0;Stringpayload=null;22Samplecode-Part2//BreakthecodeusingtokenizerStringTokenizerst=newStringTokenizer(signedRequest,.);while(st.hasMoreTokens()){if(count==1){payload=st.nextToken();break;}elsest.nextToken();count++;}23Samplecode-Part3//DecodeBase64BASE64Decoderdecoder=newBASE64Decoder();//Replacespepayload=payload.replace(-,+).replace(_,/).trim();//DecodeBase64-payloadtry{byte[]decodedPayload=decoder.decodeBuffer(payload);payload=newString(decodedPayload,UTF8);}catch(IOExceptione){//TODOAuto-generatedcatchblocklog.error(ERROR:UnabletoperformBase64Decode);returnnull;}24Samplecode-Part4//JSONDecode-payloadtry{JSONObjectpayloadObject=newJSONObject(payload);//ParseJSONdataaccessToken=+payloadObject.get(oauth_token);//Retrieveoauthtoken}catch(JSONExceptione){log.error(ERROR:UnabletoperformJSONdecode);}25Step4:AccessinguserinformationThesimplicityofGraphAPIRESTstandard,returnsdatainJSONformatTrythefollowing://graph.facebook.com/me/picture26UtilizingaccesstokenMoststillreturnsinformationwithoutaccesstokenBUTDataislimitedtopublicinformationTrythefollowingwithaccesstoken=WHILESomestrictlyrequiresaccesstoken=27TheJavaWayEasywaytoexecuteGraphAPIrequestGenericfunctionssupportedGettheAPIfrom=newDefaultFacebookClient(accessToken);JsonObjectfbUserJSON=facebookClient.fetchObject(me,JsonObject.class);StringfacebookId=fbUserJSON.getString(id);StringfirstName=fbUserJSON.getString(first_name);29Step5:InteractingwithFacebookAccessingpopularFacebookfeaturesClient-sidescriptingusingJavascriptSDKExtensivefunctionalities:FrommakingGraphAPIcallstoopenin
本文标题:facebook设计模板
链接地址:https://www.777doc.com/doc-5272245 .html