当前位置: 首页 > news >正文

蜘蛛网网站建设分析wordpress博客百度收录

蜘蛛网网站建设分析,wordpress博客百度收录,专业网站运营托管,自己动手建设网站1、首先在Facebook 开发者平台注册一个账号 https://developers.facebook.com/ 开发者后台 https://developers.facebook.com/apps 2、创建账号并且获得 APP ID 图一 图二 图三 图四 图五 3、获取app签名的Key Hashes 值#xff08;两种方式#xff09; 3.1方法1#xff1…1、首先在Facebook 开发者平台注册一个账号         https://developers.facebook.com/       开发者后台  https://developers.facebook.com/apps 2、创建账号并且获得 APP ID          图一                 图二                      图三              图四               图五           3、获取app签名的Key Hashes 值两种方式          3.1方法1          1 package com.pegasus.map.presentation.utils;2 import android.content.Context;3 import android.content.pm.PackageInfo;4 import android.content.pm.PackageManager;5 import android.content.pm.Signature;6 import android.util.Base64;7 import android.widget.Toast;8 import java.security.MessageDigest;9 import java.security.NoSuchAlgorithmException; 10 11 /** 12 * Created by ${zyj} on 2016/3/29. 13 */ 14 public class KeyHash { 15 16 /** 17 * 注意运行的时候app需要正式的签名 18 * param context 19 * param packageName app的包名 20 */ 21 public static void getKeyHash( Context context , String packageName ){ 22 try { 23 PackageInfo info null; 24 info context.getPackageManager().getPackageInfo( packageName , PackageManager.GET_SIGNATURES ); 25 for ( Signature signature : info.signatures ) { 26 MessageDigest messageDigest null; 27 messageDigest MessageDigest.getInstance(SHA); 28 messageDigest.update(signature.toByteArray()); 29 String hs Base64.encodeToString(messageDigest.digest(), Base64.DEFAULT) ; 30 Toast.makeText(context, hs , Toast.LENGTH_SHORT).show(); 31 } 32 } catch (PackageManager.NameNotFoundException e) { 33 e.printStackTrace(); 34 } catch (NoSuchAlgorithmException e) { 35 e.printStackTrace(); 36 } 37 } 38 }         3.2 命令行的方式获取 Key hash 值             3.2.1 首选保证你的电脑上有 openSSl 的库文件                        下载  http://gnuwin32.sourceforge.net/packages/openssl.htm                                3.2.2 解压下载的文件                                        3.2.3cmd 命令行模式定位到 openssl 的 bin目录下                           3.2.4执行命令                  keytool -exportcert -alias yiba -keystore C:\work\Key.jks | openssl sha1 -binary | openssl base64                 注意 1、这里的 yiba 代表app签名的别名也就是 alias                            2、C:\work\Key.jks 代表签名的路径需要换成你签名的路径                                                                        3.2.5 如果你的电脑上没有下载 openssl 那么你执行下面的代码会出现                          4、设置应用的基本配置          图一                 图二                图三                    5、App开始集成 FacebookSDk         5.1 在项目的 build.gradle 添加               compile com.facebook.android:facebook-android-sdk:4.10.1             查看最新的版本  http://search.maven.org/#search%7Cga%7C1%7Ccom.facebook.android        5.2 在应用的 Application 里面初始化SDK             //facebook登录初始化 FacebookSdk.sdkInitialize( getApplicationContext() );        5.3 在value文件夹下 strings.xml 中               !-- facebook 登录 key-- string namefacebook_app_id1001702146573854/string        5.4 在 AndroidManifest.xml 中           meta-dataandroid:namecom.facebook.sdk.ApplicationIdandroid:valuestring/facebook_app_id/ activity android:namecom.facebook.FacebookActivity android:configChangeskeyboard|keyboardHidden|screenLayout|screenSize|orientation android:themeandroid:style/Theme.Translucent.NoTitleBar android:labelstring/app_name /activity                5.5 在布局文件中定义登录按钮 com.facebook.login.widget.LoginButtonandroid:idid/facebook_btandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textfacebook login/com.facebook.login.widget.LoginButton5.6 在代码中实现 1 package com.pegasus.map.presentation.ui.activity;2 import android.content.Intent;3 import android.os.Bundle;4 import android.widget.Toast;5 import com.facebook.CallbackManager;6 import com.facebook.FacebookCallback;7 import com.facebook.FacebookException;8 import com.facebook.login.LoginResult;9 import com.facebook.login.widget.LoginButton; 10 import com.pegasus.map.R; 11 import com.pegasus.map.presentation.ui.base.BaseActivity; 12 import butterknife.Bind; 13 import butterknife.ButterKnife; 14 15 16 /** 17 * Created by ${zyj} on 2016/3/24. 18 * 登录 19 */ 20 21 public class LoginLoginActivity extends BaseActivity { 22 23 Bind(R.id.facebook_bt) 24 public LoginButton facebook_bt; 25 26 private CallbackManager callbackManager ; 27 28 Override 29 protected void onCreate(Bundle savedInstanceState) { 30 super.onCreate(savedInstanceState); 31 setContentView(R.layout.activity_login); 32 33 ButterKnife.bind(this); 34 callbackManager CallbackManager.Factory.create() ; 35 36 init(); 37 } 38 39 private void init() { 40 41 facebook_bt.registerCallback(callbackManager, new FacebookCallbackLoginResult() { 42 Override 43 public void onSuccess(LoginResult loginResult) { 44 Toast.makeText(LoginLoginActivity.this, facebook登录成功了, Toast.LENGTH_SHORT).show(); 45 log(facebook登录成功了 loginResult.getAccessToken()); //获取登录信息 getLoginInfo( loginResult.getAccessToken() ) ; 46 } 47 48 Override 49 public void onCancel() { 50 Toast.makeText(LoginLoginActivity.this, facebook登录取消了, Toast.LENGTH_SHORT).show(); 51 log(facebook登录取消了); 52 } 53 54 Override 55 public void onError(FacebookException error) { 56 Toast.makeText(LoginLoginActivity.this, facebook登录失败了, Toast.LENGTH_SHORT).show(); 57 log(facebook登录失败了); 58 } 59 }); 60 61 } 62 63 Override 64 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 65 super.onActivityResult(requestCode, resultCode, data); 66 67 //facebook回调 68 callbackManager.onActivityResult( requestCode , resultCode ,data ) ; 69 } 70 }   1 /**2 * 获取登录信息3 * param accessToken4 */5 public void getLoginInfo( AccessToken accessToken ){6 GraphRequest request GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {7 Override8 public void onCompleted(JSONObject object, GraphResponse response) {9 if (object ! null) { 10 String id object.optString( id ) ; //比如:1565455221565 11 String name object.optString( name ) ; //比如Zhang San 12 String gender object.optString(gender) ; //性别比如 male 男 female 女 13 String emali object.optString(email) ; //邮箱比如56236545qq.com 14 15 //获取用户头像 16 JSONObject object_pic object.optJSONObject( picture ) ; 17 JSONObject object_data object_pic.optJSONObject( data ) ; 18 String photo object_data.optString( url ) ; 19 20 //获取地域信息 21 String locale object.optString( locale ) ; //zh_CN 代表中文简体 22 23 Toast.makeText( activity , object.toString() , Toast.LENGTH_SHORT).show(); 24 } 25 } 26 }) ; 27 28 Bundle parameters new Bundle(); 29 parameters.putString(fields, id,name,link,gender,birthday,email,picture,locale,updated_time,timezone,age_range,first_name,last_name); 30 request.setParameters(parameters); 31 request.executeAsync() ; 32 }           5.7 企业账号需要注意的事项把发布按钮打开                                  6、对facebookSDk 进行二次封装         1 package com.pegasus.map.presentation.utils;2 3 import android.app.Activity;4 import android.content.DialogInterface;5 import android.os.Bundle;6 import android.support.v7.app.AlertDialog;7 import android.widget.Toast;8 9 import com.facebook.AccessToken;10 import com.facebook.CallbackManager;11 import com.facebook.FacebookCallback;12 import com.facebook.FacebookException;13 import com.facebook.GraphRequest;14 import com.facebook.GraphResponse;15 import com.facebook.Profile;16 import com.facebook.login.LoginManager;17 import com.facebook.login.LoginResult;18 19 import org.json.JSONObject;20 21 import java.util.Arrays;22 import java.util.Collections;23 import java.util.List;24 25 /**26 * Created by ${zyj} on 2016/3/30.27 */28 public class FaceBookLogin {29 30 private Activity activity ;31 private CallbackManager callbackManager ;32 private FacebookListener facebookListener ;33 private ListString permissions Collections.StringemptyList();34 private LoginManager loginManager;35 36 public FaceBookLogin( Activity activity ){37 this.activity activity ;38 39 //初始化facebook登录服务40 callbackManager CallbackManager.Factory.create() ;41 getLoginManager().registerCallback(callbackManager, new FacebookCallbackLoginResult() {42 Override43 public void onSuccess(LoginResult loginResult) {44 // login success45 AccessToken accessToken loginResult.getAccessToken();46 getLoginInfo(accessToken);47 }48 49 Override50 public void onCancel() {51 //取消登录52 }53 54 Override55 public void onError(FacebookException error) {56 //登录出错57 }58 });59 60 permissions Arrays61 .asList(email, user_likes, user_status, user_photos, user_birthday, public_profile, user_friends) ;62 }63 64 /**65 * 登录66 */67 public void login(){68 getLoginManager().logInWithReadPermissions(69 activity, permissions);70 }71 72 /**73 * 退出74 */75 public void logout(){76 String logout activity.getResources().getString(77 com.facebook.R.string.com_facebook_loginview_log_out_action);78 String cancel activity.getResources().getString(79 com.facebook.R.string.com_facebook_loginview_cancel_action);80 String message;81 Profile profile Profile.getCurrentProfile();82 if (profile ! null profile.getName() ! null) {83 message String.format(84 activity.getResources().getString(85 com.facebook.R.string.com_facebook_loginview_logged_in_as),86 profile.getName());87 } else {88 message activity.getResources().getString(89 com.facebook.R.string.com_facebook_loginview_logged_in_using_facebook);90 }91 AlertDialog.Builder builder new AlertDialog.Builder(activity);92 builder.setMessage(message)93 .setCancelable(true)94 .setPositiveButton(logout, new DialogInterface.OnClickListener() {95 public void onClick(DialogInterface dialog, int which) {96 getLoginManager().logOut();97 }98 })99 .setNegativeButton(cancel, null); 100 builder.create().show(); 101 } 102 103 /** 104 * 获取登录信息 105 * param accessToken 106 */ 107 public void getLoginInfo( AccessToken accessToken ){ 108 GraphRequest request GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() { 109 Override 110 public void onCompleted(JSONObject object, GraphResponse response) { 111 if (object ! null) { 112 String id object.optString(id); //比如:1565455221565 113 String name object.optString(name); //比如Zhang San 114 String gender object.optString(gender); //性别比如 male 男 female 女 115 String emali object.optString(email); //邮箱比如56236545qq.com 116 117 //获取用户头像 118 JSONObject object_pic object.optJSONObject(picture); 119 JSONObject object_data object_pic.optJSONObject(data); 120 String photo object_data.optString(url); 121 122 //获取地域信息 123 String locale object.optString(locale); //zh_CN 代表中文简体 124 125 Toast.makeText(activity, object.toString(), Toast.LENGTH_SHORT).show(); 126 } 127 } 128 }) ; 129 130 Bundle parameters new Bundle(); 131 parameters.putString(fields, id,name,link,gender,birthday,email,picture,locale,updated_time,timezone,age_range,first_name,last_name); 132 request.setParameters(parameters); 133 request.executeAsync() ; 134 } 135 136 /** 137 * 获取loginMananger 138 * return 139 */ 140 private LoginManager getLoginManager() { 141 if (loginManager null) { 142 loginManager LoginManager.getInstance(); 143 } 144 return loginManager; 145 } 146 147 public CallbackManager getCallbackManager(){ 148 return callbackManager ; 149 } 150 151 /** 152 * 设置登录简体器 153 * param facebookListener 154 */ 155 public void setFacebookListener( FacebookListener facebookListener ){ 156 this.facebookListener facebookListener ; 157 } 158 159 public interface FacebookListener { 160 void facebookLoginSuccess(); 161 void facebookLoginFail() ; 162 } 163 164 165 }  在 activity 使用 1 //初始化Facebook登录服务 2 FaceBookLogin faceBookLogin new FaceBookLogin( this ) ; 3 4 //登录 5 faceBookLogin.login(); 6 7 //退出 8 faceBookLogin.logout();   1 Override 2 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 3 super.onActivityResult(requestCode, resultCode, data); 4 5 //facebook回调 6 faceBookLogin.getCallbackManager().onActivityResult(requestCode, resultCode, data); 7 8 }
http://www.pierceye.com/news/183864/

相关文章:

  • 网站水印设置作教程长沙求职网招聘网
  • 八年级微机网站怎么做wordpress 链接转换
  • ppt做的模板下载网站有哪些内容wordpress 4.5.3中
  • 网站开发需求文档prd模板iis wordpress 404
  • 灰色链网站建设偃师建网站那家公司好
  • 文化网站前置审批网站运营系统
  • 现在做网站用什么学校网站的建设需求
  • 网页制作与网站建设技术大全 pdfhtml5移动端网站开发教程
  • 做任务可以给钱的网站php响应式网站模板下载
  • 平面素材设计网站东莞房价2023年最新房价走势
  • 做一个网站建设需要多少钱天津企业网站排名优化
  • 有关网站开发的论文网站建设哪公司
  • wordpress网站500导航 网站 分析
  • 软件网站开发市场前景试论述网上商城的推广技巧
  • 海洋生态文明建设的网站名廊坊网站建设电话
  • 做外贸在哪个网站比较好视频网站搭建源码
  • 网站代码优化视频教程动画制作专业大学排名
  • 安阳网站推广优化网站导航条背景图片
  • 静态网站需要数据库吗广州近期流行的传染病
  • 如何做国外的网站页面设计感想
  • 征婚网站认识的男人做定投保wordpress 中文 cms
  • 淄博百度网站建设上虞网站建设哪家好
  • 网站菜单导航怎么做的网站没有备案怎么做支付
  • wordpress主题小程序如何做优化排名
  • 中企动力做网站费用多个域名 指向同一个网站
  • 怎么搭建小程序平台网站营销优化
  • 建设网站员工招聘策划方案软件开发的八个步骤
  • 怎样做cms电影网站赚钱网络营销需要学什么
  • wordpress快速仿站视频教程没有备案的网站会怎么样
  • 美团先做网站还是app惠州惠阳网站建设