这篇文章主要围绕外媒:谷歌、Facebook被指控非法操纵价格和facebook被谷歌收购展开,旨在为您提供一份详细的参考资料。我们将全面介绍外媒:谷歌、Facebook被指控非法操纵价格的优缺点,解
这篇文章主要围绕外媒:谷歌、Facebook 被指控非法操纵价格和facebook被谷歌收购展开,旨在为您提供一份详细的参考资料。我们将全面介绍外媒:谷歌、Facebook 被指控非法操纵价格的优缺点,解答facebook被谷歌收购的相关问题,同时也会为您带来#import
- 外媒:谷歌、Facebook 被指控非法操纵价格(facebook被谷歌收购)
- #import
"facebookSDK/FacebookSDK.h file not found" - android – Facebook SDK 3.0 – 获取Facebook用户名和访问令牌
- android – 使用Facebook应用程序打开Facebook Url
- com.facebook.android.Facebook的实例源码
外媒:谷歌、Facebook 被指控非法操纵价格(facebook被谷歌收购)
据外媒报道,在以美国得克萨斯州为首的十个州提起的反垄断诉讼中,谷歌与 Facebook 于 2018 年签署的特殊广告协议被指为非法价格操纵交易。立法者们要求对此展开进一步调查,但两家公司回应表示,该协议属于行业惯例,不存在操纵价格行为。在最新曝光的诉讼文件草案中,得克萨斯州总检察长肯 · 帕克斯顿(Ken Paxton)等人表示,谷歌与 Facebook 签署了特殊协议,允许后者访问广告服务器,这是在网络上分配广告空间时使用的普遍工具。他们指控称,谷歌的这些行为损害了竞争,剥夺了 “广告客户、出版商和消费者提高质量、提高透明度、增加产出以及降低价格”的权利。谷歌发言人拒绝就协议的具体条款置评。她表示,各州的 “诉讼曲解了这项协议,就像其曲解了我们广告技术业务的许多其他方面一样。我们期待着在法庭上为自己辩护。”虽然 Facebook 在此案中并未被列为被告,但也对美国政府的说法提出了质疑。该公司在声明中称:“这样的合作在行业中很常见,我们和其他几家公司也签有类似的协议。Facebook 将继续投资于这些合作关系,并建立新的合作伙伴关系,这有助于增强广告拍卖的竞争,为广告商和发行商创造最佳结果。任何有关此类协议损害竞争的说法都毫无根据。”美国犹他州共和党参议员、参议院反垄断小组委员会主席迈克 · 李 (Mike Lee)说,他认为两家公司应该就合同进行宣誓作证。该委员会的民主党领袖、明尼苏达州民主党参议员艾米 · 克罗布彻 (Amy Klobuchar)也称:“如果司法部还没有调查这些指控,那就必须立即行动起来。”在这起反垄断案中,最值得关注的就是名为 “标题竞价”的广告销售方式,它可以帮助网站出版商绕开谷歌的限制在网上买卖广告。在网页加载的瞬间,该交易所将把广告空间拍卖给出价最高的投标者。标题竞价允许出版商直接向多个广告交易所同时招标,为出版商带来更优惠的价格。诉讼文件显示,到 2016 年,大约 70% 的主要出版商使用了该工具。美国政府指控称,谷歌担心大型竞争对手可能会接受标题竞价,比如 Facebook 的受众网络广告服务(FAN),从而打破谷歌在广告工具方面的盈利垄断。Facebook 表示,该公司在 2018 年向出版商支付了 15 亿美元,这是它最后一次提供此类财务支出细节。起诉书中显示,谷歌广告业务主管克里斯 · 拉萨拉 (Chris LaSala)称在概述 2017 年优先事项的内部文件中写道 :“需要击退标题竞价和 FAN 带来的存亡威胁。”2017 年 3 月,Facebook 公开支持标题竞价。这些州称,谷歌与 Facebook 进行了接触,并于 2018 年 9 月达成了特殊数字广告协议。2018 年 12 月,Facebook 宣布加入谷歌推出的 “公开竞价”广告项目,作为标题竞价的替代方案。作为回报,谷歌给了 Facebook 特殊待遇,允许 Facebook 直接向谷歌广泛使用的软件 (即广告服务器)发送报价。通常情况下,竞标者需要通过广告交易所提交报价,然后将得标者发送到谷歌的服务器上。通过绕过中间商,Facebook 可以减少面临的竞争,并节省资金。根据诉讼草案,谷歌只向 Facebook 每笔交易收取 5% 至 10% 的费用,而谷歌交易的标准收费约为 20%,并禁止 Facebook 公开讨论定价条款。谷歌发言人拒绝回答有关问题,比如向 Facebook 提供的条款是否与向其他拍卖参与者提供的相同,并否认操纵拍卖。她还说,至少有 25 家其他公司参与了其 “公开竞价”广告计划,Facebook 也在竞争对手的平台上参与了类似的拍卖。Facebook 的参与没有任何排他性,他们不会接收到其他买家无法获得的数据。广告技术公司 Chalice Custom Algorithms 首席执行官亚当 · 海姆利克 (Adam Heimlich)说,任何没有这些信息的投标者都将处于不利地位。他今年在参议院听证会上指责谷歌损害竞争。
#import "facebookSDK/FacebookSDK.h file not found"
第一种可能: 从window下上传到mac 下 facebook sdk出错!【这个是系统的错误,只能从其他地方拷贝 FacebookSDK.framework 文件夹 就ok】,下图是正常状态,【不正常的状态下,这几个文件直接是物理文件了】
第二种可能 ,设置读取路径错误
在mac下 project下找到build setting ,再找 searchPath,点击Framework search paths 设置路径即可
"$(SRCROOT)/xxx/xxx/FacebookSDK.framework"
android – Facebook SDK 3.0 – 获取Facebook用户名和访问令牌
我正在跟随facebook本地登录 – http://developers.facebook.com/docs/tutorials/androidsdk/3.0/scrumptious/authenticate/
我使用Session.getAccesstoken获取访问令牌,我得到一些访问令牌,但是这是无效的.实际程序是什么?我做错了吗
如何使用Facebook SDK 3.0在Native登录中获取UserId
解决方法
final Session session = Session.getActiveSession(); if (session != null && session.isOpened()) { // If the session is open,make an API call to get user data // and define a new callback to handle the response Request request = Request.newMeRequest(session,new Request.GraphUserCallback() { @Override public void onCompleted(GraphUser user,Response response) { // If the response is successful if (session == Session.getActiveSession()) { if (user != null) { user_ID = user.getId();//user id profileName = user.getName();//user's profile name userNameView.setText(user.getName()); } } } }); Request.executeBatchAsync(request); }
user_ID& profileName是字符串.
对于accesstoken:
String token = session.getAccesstoken();
EDITED:(13/1/2014)
对于用户电子邮件(我没有通过在设备或模拟器上运行来检查此代码):
这些只是我的意见,或者你可以称之为建议
setReadPermissions(Arrays.asList("email",...other permission...)); //by analyzing the links bellow,i think you can set the permission in loginbutton as: loginButton.setReadPermissions(Arrays.asList("email",...other permission...)); user.asMap().get("email");
更多信息请看:
link1,link2,link3,link4,
android – 使用Facebook应用程序打开Facebook Url
URL看起来像 http://www.facebbok.com/abcxyz.它应该在Facebook应用程序中打开’abcxyz’页面,但它总是在浏览器中打开.
码:
try { Intent browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(url)); activityContext.startActivity(browserIntent); } catch (ActivityNotFoundException ex) { ex.printstacktrace(); }
我的Android操作系统版本是6.0.1.
我和Instagram,http://www.instagram.com/abcxyz有同样的问题,而Youtube等其他应用程序也有问题.
解决方法
public Intent getFacebookIntent(String url) { PackageManager pm = context.getPackageManager(); Uri uri = Uri.parse(url); try { ApplicationInfo applicationInfo = pm.getApplicationInfo("com.facebook.katana",0); if (applicationInfo.enabled) { uri = Uri.parse("fb://facewebmodal/f?href=" + url); } } catch (PackageManager.NameNotFoundException ignored) { } return new Intent(Intent.ACTION_VIEW,uri); }
com.facebook.android.Facebook的实例源码
@Override public void onCreate(Bundle savedInstanceState) { //ALog.m(); super.onCreate(savedInstanceState); mFacebook = new Facebook(); if ( mFacebook.isSessionValid() ) { //ALog.i("Already have a saved Facebook session,skipping authorization."); setResult(RESULT_OK); finish(); return; } mFacebook.authorize(this,FacebookConfig.getAppId(),PERMISSIONS,new LoginDialogListener()); //setContentView(R.layout.facebook); }
private void startFacebookWebViewActivity() { Intent intent = new Intent(this,FacebookWebViewActivity.class); intent.putExtra(FacebookWebViewActivity.INTENT_EXTRA_ACTION,Facebook.LOGIN); intent.putExtra(FacebookWebViewActivity.INTENT_EXTRA_KEY_APP_ID,getResources().getString(R.string.facebook_api_key)); intent.putExtra(FacebookWebViewActivity.INTENT_EXTRA_KEY_PERMISSIONS,new String[] {}); //{"publish_stream","read_stream","offline_access"}); intent.putExtra(FacebookWebViewActivity.INTENT_EXTRA_KEY_DEBUG,false); intent.putExtra(FacebookWebViewActivity.INTENT_EXTRA_KEY_CLEAR_COOKIES,true); startActivityForResult(intent,ACTIVITY_RESULT_FACEBOOK_WEBVIEW_ACTIVITY); }
/** * Listen for FacebookWebViewActivity finishing,inspect success/failure and returned * request parameters. */ @Override protected void onActivityResult(int requestCode,int resultCode,Intent data) { if (requestCode == ACTIVITY_RESULT_FACEBOOK_WEBVIEW_ACTIVITY) { // If RESULT_OK,means the request was attempted,but we still have to check the return status. if (resultCode == RESULT_OK) { // Check return status. if (data.getBooleanExtra(FacebookWebViewActivity.INTENT_RESULT_KEY_RESULT_STATUS,false)) { // If ok,the result bundle will contain all data from the webview. Bundle bundle = data.getBundleExtra(FacebookWebViewActivity.INTENT_RESULT_KEY_RESULT_BUNDLE); // We can switch on the action here,the activity echoes it back to us for convenience. String suppliedAction = data.getStringExtra(FacebookWebViewActivity.INTENT_RESULT_KEY_SUPPLIED_ACTION); if (suppliedAction.equals(Facebook.LOGIN)) { // We can Now start a task to fetch foursquare friends using their facebook id. mStateHolder.startTaskFindFriends( AddFriendsByUserInputActivity.this,bundle.getString(Facebook.TOKEN)); } } else { // Error running the operation,report to user perhaps. String error = data.getStringExtra(FacebookWebViewActivity.INTENT_RESULT_KEY_ERROR); Log.e(TAG,error); Toast.makeText(this,error,Toast.LENGTH_LONG).show(); finish(); } } else { // If the user cancelled enterting their facebook credentials,exit here too. finish(); } } }
public static void clearFacebookCredentials(Facebook facebook,Context context) { if(facebook.isSessionValid()) facebook.getSession().close(); Editor editor = context.getSharedPreferences(FACEBOOK_KEY,Context.MODE_PRIVATE).edit(); editor.remove(FACEBOOK_TOKEN); editor.commit(); }
public FacebookConnector(String appId,String[] permissions,SocialActivity socialActivity) { this.facebook = new Facebook(appId); SharedPreferencesCredentialStore.restoreFacebookSession(facebook,socialActivity.getApplicationContext()); this.permissions=permissions; this.mHandler = new Handler(); this.activity = socialActivity; socialActivity.registerSocialConnector(this); }
public FacebookConnector(String appId,SocialSliderActivity socialActivity) { this.facebook = new Facebook(appId); SharedPreferencesCredentialStore.restoreFacebookSession(facebook,socialActivity.getApplicationContext()); this.permissions=permissions; this.mHandler = new Handler(); this.activity = socialActivity; socialActivity.registerSocialConnector(this); }
public void shareFacebook(){ facebook = new Facebook("1418005058449444"); restoreCredentials(facebook); messagetoPost = "Hello Everyone."; if (!facebook.isSessionValid()) { loginAndPostToWall(); } else { postToWall(messagetoPost); } }
public static boolean save(Facebook session,Context context) { Editor editor = context.getSharedPreferences(KEY,Context.MODE_PRIVATE).edit(); editor.putString(TOKEN,session.getAccesstoken()); editor.putLong(EXPIRES,session.getAccessExpires()); return editor.commit(); }
public static boolean restore(Facebook session,Context context) { SharedPreferences savedSession = context.getSharedPreferences(KEY,Context.MODE_PRIVATE); session.setAccesstoken(savedSession.getString(TOKEN,null)); session.setAccessExpires(savedSession.getLong(EXPIRES,0)); return session.isSessionValid(); }
private void makeWallPost() { //ALog.m(); Facebook facebook = new Facebook(); SessionStore.restore(facebook,this); //ALog.i("stream.publish parameters: ",mParams); facebook.dialog(FacebookApplicationPost.this,"stream.publish",mParams,new WallPostDialogListener()); }
@Override public void onComplete(Bundle values) { //Log.i("got values",values.toString()); accesstoken = values.getString(Facebook.TOKEN); // Todo Auto-generated method stub }
public boolean testPublicApi() { Facebook fb = new Facebook(APP_ID); try { Log.d("Tests","Testing standard API call"); JSONObject response = Util.parseJson(fb.request("4")); if (!response.getString("name").equals("Mark Zuckerberg")) { return false; } Log.d("Tests","Testing an API call with a specific method"); response = Util.parseJson( fb.request("soneff",new Bundle(),"GET")); if (!response.getString("name").equals("Steven Soneff")) { return false; } Log.d("Tests","Testing a public search query"); Bundle params = new Bundle(); params.putString("q","facebook"); response = Util.parseJson(fb.request("search",params)); if (response.getJSONArray("data").length() == 0) return false; Log.d("Tests","Public API Tests passed"); return true; } catch (Throwable e) { e.printstacktrace(); return false; } }
public static boolean restoreFacebookSession(Facebook facebook,Context context) { SharedPreferences savedSession = context.getSharedPreferences(FACEBOOK_KEY,Context.MODE_PRIVATE); facebook.setAccesstoken(savedSession.getString(FACEBOOK_TOKEN,null)); facebook.setAccessExpires(savedSession.getLong(EXPIRES,0)); return facebook.isSessionValid(); }
public static boolean saveFacebookToken(Facebook session,Context context) { Editor editor = context.getSharedPreferences(FACEBOOK_KEY,Context.MODE_PRIVATE).edit(); editor.putString(FACEBOOK_TOKEN,session.getAccessExpires()); return editor.commit(); }
public void forceAuthenticate() { facebook.authorize(this.activity,this.permissions,Facebook.FORCE_DIALOG_AUTH,new LoginDialogListener()); }
public Facebook getFacebook() { return this.facebook; }
public boolean saveCredentials(Facebook facebook) { Editor editor = getApplicationContext().getSharedPreferences(KEY,facebook.getAccesstoken()); editor.putLong(EXPIRES,facebook.getAccessExpires()); return editor.commit(); }
public boolean restoreCredentials(Facebook facebook) { SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(KEY,Context.MODE_PRIVATE); facebook.setAccesstoken(sharedPreferences.getString(TOKEN,null)); facebook.setAccessExpires(sharedPreferences.getLong(EXPIRES,0)); return facebook.isSessionValid(); }
public void loginAndPostToWall() { facebook.authorize(this,new LoginDialogListener()); }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); loginActivity = this; sqliteDatabaseAdapter.setContext(this); checkGooglePlayServices(); mPlusClient = new PlusClient.Builder(this,this,this) .setVisibleActivities("http://schemas.google.com/AddActivity","http://schemas.google.com/BuyActivity").setScopes(Scopes.PLUS_LOGIN,Scopes.PLUS_PROFILE).build(); btnLoginGoogle = (Button) findViewById(R.id.btn_login_google); initGoogleButton(); genKeyHash(); resource = getResources(); DebugLog.logd("On create"); // Create the Facebook Object using the app id. if (Utility.mFacebook == null) { Utility.mFacebook = new Facebook(APP_ID); } // Instantiate the asynrunner object for asynchronous api calls. if (Utility.mAsyncRunner == null) { Utility.mAsyncRunner = new AsyncFacebookRunner(Utility.mFacebook); } SessionStore.restore(Utility.mFacebook,this); SessionEvents.addAuthListener(authenListener); SessionEvents.addlogoutListener(logoutListener); Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS); btnLoginFaceBook = (Button) findViewById(R.id.btn_login_facebook); initFacebookButton(); SessionEvents.addAuthListener(mSessionListener); SessionEvents.addlogoutListener(mSessionListener); if (Utility.mFacebook.isSessionValid() && islogout == 0 && currentSocial == Social.FACEBOOK) { DebugLog.logd("On facebook Create"); if (Utils.checkInternetConnect(this)) { requestGetUserData(); } } if (currentSocial == Social.GOOGLE && islogout == 0) { DebugLog.logd("On Google Create"); mPlusClient.connect(); } checklogout(); }
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.main); String[] permissions = {"offline_access","user_events","friends_events","friends_status","user_status","friends_photos","user_photos","friends_about_me","friends_website","email","friends_birthday","friends_location"}; FacebookUtil.facebook.authorize(AuthorizationActivity.this,permissions,new DialogListener() { @Override public void onComplete(Bundle values) { FacebookUtil.accesstoken = FacebookUtil.facebook.getAccesstoken(); Log.i("Expires",String.valueOf(FacebookUtil.facebook.getAccessExpires()));; AccountManager am = AccountManager.get(AuthorizationActivity.this); Account account = am.getAccountsByType(AuthorizationActivity.this.getString(R.string.ACCOUNT_TYPE))[0]; am.setPassword(account,FacebookUtil.facebook.getAccesstoken()); SharedPreferences prefs = AuthorizationActivity.this.getSharedPreferences(AuthorizationActivity.this.getPackageName() + "_preferences",MODE_MULTI_PROCESS); SharedPreferences.Editor editor = prefs.edit(); editor.putInt("permission_level",FacebookUtil.PERMISSION_LEVEL); editor.putLong("access_expires",FacebookUtil.facebook.getAccessExpires()); editor.commit(); ContentResolver.requestSync(account,ContactsContract.AUTHORITY,new Bundle()); ContentResolver.requestSync(account,CalendarContract.AUTHORITY,new Bundle()); // Log.i(TAG,ContentResolver.); //Log.i(TAG,"Calendar :" + ContentResolver.isSyncActive(account,CalendarContract.AUTHORITY)); // Log.i(TAG,"Contacts :" + ContentResolver.isSyncActive(account,ContactsContract.AUTHORITY)); FacebookUtil.isExtendingToken = false; AuthorizationActivity.this.finish(); } @Override public void onFacebookError(FacebookError error) { Log.i(TAG,"fberror"); AuthorizationActivity.this.finish(); } @Override public void onError(DialogError e) { Log.i(TAG,"error"); AuthorizationActivity.this.finish(); } @Override public void onCancel() { Log.i(TAG,"cancel"); AuthorizationActivity.this.finish(); } }); }
@SuppressWarnings("deprecation") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null) TutoRes = savedInstanceState.getInt("TutoRes"); facebook = new Facebook(APP_ID); AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook); //loginFacebook(); requestwindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.tutorial_1); //setLogin(); Session.openActiveSession(this,true,new Session.StatusCallback() { @Override public void call(final Session session,SessionState state,Exception exception) { if (session.isOpened()) { Request.newMeRequest(session,new Request.GraphUserCallback() { @Override public void onCompleted(GraphUser user,Response response) { if (user != null) { //welcome = (TextView) findViewById(R.id.welcome); Userid = user.getId(); User_name= user.getFirstName(); } } }).executeAsync(); } } }); final Button Button = (Button) findViewById(R.id.button1); Button.setonClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(Userid != null && User_name != null){ Intent intent = new Intent(); intent.setClass(Tutorial_1.this,Tutorial_2.class); db.addUsuario(new Usuario(User_name,Userid)); startActivity(intent); finish(); } else { Toast.makeText(getApplicationContext(),"Aguarde o carregamento dos dados do perfil do Facebook",Toast.LENGTH_SHORT).show(); } } }); }
今天关于外媒:谷歌、Facebook 被指控非法操纵价格和facebook被谷歌收购的讲解已经结束,谢谢您的阅读,如果想了解更多关于#import
本文标签: