I'm using facebook sdk 3.15 to set a facebook login button on my project.
keep in mind that I'm working with parse.com
I used the code provided by parse.com support, available here but I keep getting this error after I click on the login button :
invalide scope : basic info use public_profile, user friends instead
I googled the error and found nothing...
Thanks for your help :)
You're using Graph API v2.0, hence the permission basic_info is no longer available.
See https://developers.facebook.com/docs/apps/changelog#v2_0_permissions
basic_info is no longer available.
Check what you set as scope parameter in the Login URL.
I have the same problem,like the below image:
Then I change my code from: self.loginView.readPermissions = #[#"basic_info"]; to self.loginView.readPermissions = #[#"public_profile", #"user_friends"]; to solved the problem. With the loginView is declaration into the header file:#property (weak, nonatomic) IBOutlet FBLoginView *loginView;
Related
I followed every step right in setting up tag manager + firebase:
FirebaseB, GA and Tag Manager properly set up
Install necessary nugets as stated above.
Put the JSON of the tag manager container inside assets/containers
When I tested in iOS, it went smoothly, however in Android, I kept getting this error:
Invalid macro: _gtm.loadEventEnabled
I also encounter this in the device log afterwards:
Failed to load the container. NO default container resource found with resource ID -1
refresh test, containerHolder: com.google.android.gms.tagmanager.dc#XXXXXXX
Steps to Reproduce:
1) Create a Xamarin Forms app.
2) In the Android project, install the necessary nuget packages.
3) Enable firebase and call _firebaseAnalytics.SetAnalyticsCollectionEnabled(true);.
4) Log some events
5) Create a GA and google tag manager account. Create a container (Android), then download the JSON file. Put the JSON file inside Assets/containers folder.
6) Run the application while Device logcat is running (you can check error here)
These are the packages that I used:
PackageReference Include="Xamarin.GooglePlayServices.Analytics" Version="71.1608.1"
PackageReference Include="Xamarin.GooglePlayServices.Base" Version="71.1610.1
PackageReference Include="Xamarin.GooglePlayServices.TagManager" Version="71.1604.1
PackageReference Include="Xamarin.Firebase.Analytics" Version="71.1630.1
PackageReference Include="Xamarin.Firebase.Messaging" Version="71.1740.1
Has anyone encountered this and knows how to fix this?
Welcome to SO !
Using Tag Manager in Xamarin Android , after installing Nuget Package for solution . There are follow steps for reference :
1, Create a Google Analytics account, please make sure you select a mobile account (Under New Property - you'll have to select mobile/Web).
2,Create a Google Tag Manager account - create a container, then create a tag of type Google Analytics - universal analytics. a) Put your analytics account id in the Tracking ID (should be in the form "UA-XXXXXX-X"). b) Create a macro for screen name (you can view in the screenshots 'TagManagerMacro.jpeg') c) The Rule Track Type should be App View. d) In the more settings --> basic configuration --> screen name - add the macro we defined in step b. e) In Firing rules - make sure your rule is set for always.
In your Activity, call to
var tagmanager = TagManagerClass.GetInstance(this);
var pendingResult = _tagmanager.LoadContainerPreferNonDefault("GTM-XXXXXX",
Resource.Raw.gtm_analytics);
pendingResult.SetResultCallback(new TagMnagerResultCallback(), 2, TimeUnit.Seconds);
After the callback as returned, you can fire events like this:
_tagmanager.DataLayer.PushEvent("openScreen", DataLayer.MapOf("screenName", "testScreen"));
This guide was followed by the guidelines instructed here.
I'm trying to integrate the PayPal Here swipers into a Xamarin Android app. Everything is fine until I try and give my credentials to the SDK. Specifically, the line containing the call to PayPalHereSDK.SetCredentials
public void InitializeSdk( Context context, string serverName, string accessToken, string refreshUrl, string expires, IPayPalHereSdkWrapperCallback listener ) {
PayPalHereSDK.Init( context, serverName );
PayPalHereSDK.RegisterAuthenticationListener( this );
PayPalHereSDK.CardReaderManager.RegisterCardReaderConnectionListener( this );
if ( !string.IsNullOrEmpty( accessToken ) ) {
var credentials = new OAuthCredentials( accessToken, refreshUrl, expires );
PayPalHereSDK.SetCredentials( credentials, new SetAccessTokenResponseHandler( listener ) );
}
}
My SetAccessTokenResponseHandler class implements the Com.PayPal.Merchant.Sdk.Domain.IDefaultResponseHandler interface. As described above, the OnError function is called when call the PayPalHereSDK.SetCredentials function. I'm given the error code "BadConfiguration" and the message "Cannot proceed with this merchant account. ready"
I've searched Google high and low and, I believe, scoured SO pretty thoroughly. I can't seem to overcome the error, so I'm asking for help!
I think the paypal email is not verified properly. Please go through the merchant onboarding guide document to get more details regarding making the merchant eligible.
https://github.com/paypal/paypal-here-sdk-android-distribution/blob/master/docs/Merchant%20Onboarding%20Guide.pdf
Hope this helps. Cheers.
I'm not sure what exactly the issue was, but I ended up deleting the Sandbox App in my PayPal dev portal and creating a new one. Everything works now. head scratch
I resorted to this because, while trying to follow Sundar's suggestion, I started getting an "invalid scope" error. I had received them before and KNEW I had it fixed ( and no code had changed ). When I deleted/recreated the app, that error went away. Frustrating, but that's what worked!
I am using the new GoogleConnect thing and set the scope like
Login gc = GoogleConnect.getInstance();
gc.setScope("https://www.googleapis.com/auth/plus.profile.emails.read https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file");
...
gc.doLogin();
However, when the access token is generated and checked in
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=(accesstoken)
, it shows
"scope": "https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.profile"
Is it related to any recent updates or new build hint?
I am totally lost here. It is an Android build.
Thanks.
Edited to add gc.doLogin() code, to clarify that I am NOT trying to set the scope after the access token is generated.
Same problem here, setScope only works on the simulator
"scope": "https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.profile",
My scopes (for reference):
google.auth.scopes=https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.me email profile
I'm having problems with the AppInviteDialog provided by Facebook.
I'm using the following code snippet to show the dialog
if (AppInviteDialog.canShow()) {
AppInviteContent content = new AppInviteContent.Builder()
.setApplinkUrl(appLinkUrl)
.setPreviewImageUrl(previewImageUrl)
.build();
AppInviteDialog.show(activity, content);
}
The problem is the sentence AppInviteDialog.canShow() is returning false.
In the Facebook Developers page, they say no login is required to invite people
App Invites does not require Facebook Login.
But I noticed the AppInviteDialog.canShow() only returns true when I make login in my app. But if I close it an open again the dialog can not show.
Have any ideas what's going on?
Please see this answer. canShow() returns false typically when the content you're trying to share is not supported by the web version.
https://api.twitter.com/1.1/users/show.json?screen_name=screen-name&include_entities=true
is not working.
Getting Bad Authentication data error.
Twitter integration is also getting same error. How to solve this error?
you need to use oAuth.
use for example this class - https://github.com/abraham/twitteroauth
also must create app to get needed KEYs ($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret).
and to get for example tweets from timeline just execute this code
require_once(dirname(__FILE__) . '/libs/twitteroauth.php');
$connection = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
$response = $connection->get('statuses/user_timeline', array('screen_name' => $twitter_name));
echo '<pre>'.print_r($response,1).'</pre>';